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