while ($row = mysqli_fetch_array($result) && strlen($row['url_key']) > 4)
{
....
}
我想到这所取得的阵列分配给$row
然后检查数组中的元素之一的长度,而是我得到为什么在PHP中执行布尔测试后发生变量赋值?
“PHP公告:未定义的变量:排在/ home/dwilkins/stage_image_update.php on line ...“
如果$row
未被分配,我期望测试短路,并且url密钥的长度不被测试。我知道正在分配$行,因为当我将&& strlen...
取出时,它正常运行。那么导致这种行为的'底层'实际上究竟发生了什么?我查看了logical operators的PHP.net条目,但我没有得到任何关于此的信息。
'$ row'不存在,直到你'while'开始循环。 –
评估时,我不认为'$ row ['url_key']'被赋值或索引不存在。同样在最后一次运行时,没有'$ row'。 – Twisty
尝试使用括号,'($ row = mysqli_fetch_array($ result))&& strlen($ row ['url_key'])> 4)' – JCOC611