php - 为什么在 PHP 中执行 bool 测试后会发生变量赋值?

标签 php

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

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

“PHP 通知: undefined variable :/home/dwilkins/stage_image_update.php 中的行……”

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

最佳答案

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

关于php - 为什么在 PHP 中执行 bool 测试后会发生变量赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33155706/

相关文章:

php - 如何使用 gmdate() 显示超过 24 小时,但不显示天数

php - 无法连接到 000webhost 中的数据库

php - 指定表格数据宽度

php - 使用 ob_start 时如何在 php 中使用 header 位置重定向?

PHP:我可以在接口(interface)中使用字段吗?

php - Composer 将不再更新

php - 使用 HTTP_HOST 获取没有端口的域名

php - 如何使用 php 代码将数据库表中的值获取到数组?

javascript - jQuery AJAX 代码确实运行,但 MySQL 帖子没有被删除

PHPMailer 不适用于 Gmail SMTP