php - PHP中 "or"的奇怪做法

标签 php

PHP 的 or 是一个奇怪的关键字。这是一个让我感到困惑的代码片段:

echo 0 or 1; // prints 1

$foo = (0 or 1);
echo $foo; // prints 1

$foo = 0 or 1;
echo $foo; // prints 0 for some reason

为什么最后一个打印的是0而不是1?

最佳答案

这是因为不同的运算符优先级。在第三种情况下,首先处理赋值。它将被解释为:

($foo = 0) or 1;

|| 运算符有不同的优先级。如果你使用

 $foo = 0 ||1;

它将如您所愿地工作。

参见 manual on logical operators

关于php - PHP中 "or"的奇怪做法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3414504/

相关文章:

php - Paypal 代码错误。重定向到错误 400

php - 有谁知道什么可能导致这个 fatal error ?

php - PDO结果集是如何存储的

php - 在自定义 WooCommerce 字段上设置值

php - 在 Zend Framework View 脚本中使用 baseUrl() 重要吗?

php - 使用php仅将txt文件中的某些行加载到mysql表中

php - 识别关系相对于非识别关系的优缺点,反之亦然

php - 结合 3 个不同的 MySQL 表的值,连接表 1 和表 2 并检查此连接中是否存在表 3 值

php - 直接在 MySQL 中将多行从一个表复制到另一个表?

php - 使用 CodeIgniter 更新批处理