我很难解决我的代码...... 有人,能帮帮我吗...
到目前为止,这是我的代码......
$r = get_pht_desc($wordString);
if (empty($r)) {
while (count($r) < 1 ) {
$r1 = get_pht_desc($wordString);
print_r ($r1);
}
} else {
print_r ($r);
}
我想要的是:
如果我的函数 $ r = get_pht_desc($ wordString)的结果为空,它将重复函数,直到结果不为空或大于零。
注意: $ r 的结果是一个数组,因此我使用 count 检查结果是否为空
我尝试了很多方式,我认为这样做但仍然没有奏效。 while函数给了我结果
Array ( ) Array ( ) Array ( ) Array ( )....
直到无限......
提前致谢
答案 0 :(得分:0)
我认为你的想法是$r
不应该是空的;您的循环仅在$r
为空时输入,旨在保证$r
在退出时不为空。
因此,您最后可以在处打印$ r :
$r = get_pht_desc($wordString);
if (empty($r)) {
while (count($r) < 1 ) {
$r1 = get_pht_desc($wordString);
}
// $r is always filled now. No need to put the print
// in the else part.
print_r ($r);
作为一种风格问题:PHP有do-while循环,您可以在这里使用:在任何情况下都需要一次读取,并且想要在之后仅检查是否$r
是空的:
do { $r1 = get_pht_desc($wordString); } while (count($r) < 1 );
// $r is always filled now. No need to put the print
// in the else part.
print_r ($r);
这看起来很整洁。
答案 1 :(得分:0)
如果我理解正确使用此
$r = get_pht_desc($wordString);
foreach( $r as $i => $result ){
if( !empty($result) ){
print_r($result):
}
}
答案 2 :(得分:0)
使用以下代码
$r = array();
while (empty($r)) {
$r = get_pht_desc($wordString);
}
print_r ($r);
但我认为这将是无限循环get_pht_desc($ wordString)返回空结果bcoz可能每次返回相同的结果。
答案 3 :(得分:0)
首先,如果你不对这个函数检查数据的次数($ r)施加限制,那就太危险了。 我添加的限制(例如10)函数最多会被调用10次(以节省无限循环)。您还可以在循环内添加睡眠以等待几秒钟并再次检查(如果您不添加睡眠,它将在几毫秒内调用函数10次)。
试试这段代码:
$r = array()
$count = 0;
do{
$r = get_pht_desc($wordString);
$count++;
} while(!empty($r) && $count <= 10)
print_r($r);
&#13;