为什么在PHP中执行布尔测试后会发生变量分配? - php

while ($row = mysqli_fetch_array($result) && strlen($row['url_key']) > 4)
{
....
}

我希望这可以将获取的数组分配给$row,然后检查该数组中元素之一的长度,但是我得到了

“ PHP注意:未定义的变量:/home/dwilkins/stage_image_update.php中的行...”

如果未分配$row,我希望测试会短路,并且url键的长度也不会被测试。我知道正在分配$ row,因为当我取出&& strlen...时,它可以正常工作。那么,导致这种行为的“幕后”到底发生了什么?我查看了logical operators的PHP.net条目,但对此一无所知。

参考方案

&&具有比=高的operator precedence。您需要相应地构建表达式(例如,引入括号以更改优先级)。这是一个非常重要的基本概念,需要理解和认识。

PHP中的“and”和“&&”运算符之间有什么区别吗? - php

我有以下代码,不认为并且不是必需的,即应该使用&&,因为没有什么可以分配左边的部分?if($_REQUEST['foo'] != 'abc' and $_REQUEST['bar'] == 'def') { echo "all your base…

PHP-将日期插入日期时间字段 - php

我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数

PHP-如何获取类的成员函数列表? - php

如果我知道班级的名字。有没有办法知道类的成员函数列表? 参考方案 get_class_methods()是你的朋友

PHP-我们应在会话中包含哪些数据? - php

这是一个初学者的问题...在网站中,会话中应该包含或不应该包含什么类型的数据?我了解我不应该包含任何需要保持安全的信息。我对编程最佳实践更感兴趣。例如,有可能在会话中包括一些数据,否则这些数据将作为依赖项注入从一个页面发送到另一个页面。这不等于创建全局变量吗?一般来说,哪种数据在会话表中已经存在或没有?谢谢,JDelage 参考方案 您应该将会话视为一次写入…

php ziparchive类源代码 - php

Improve this question 我如何获取ziparchive类本身的源代码。 参考方案 假设您在谈论PHP ZipArchive class:下载PHP source code并查找适当的文件。如果您希望源代码是PHP代码,您可能会感到失望,因为源代码是用C语言编写的。或者,也可以在PHP Github Development Reposito…