繁体   English   中英

php为什么或运算符返回0为真

[英]php why does or operator return 0 as true

在以下代码中:

$a = 0 or 1;
$b = 0 || 1; 
echo "$a, $b"; // 0, 1

为什么$a等于零,我想or|| 在PHP中是可以互换的吗? 是什么让or语句返回0

我会假设两个结果都是1 ,使它回显1, 1

or优先级低于=优先级低于""

所以你的代码相当于:

($a = 0) or 1;
$b = (0 || 1); 

请参阅PHP手册中的优先级表

这是因为PHP中的优先规则。 赋值=运算符的优先级低于逻辑|| 运算符,但优先级高于逻辑OR运算符。 请参见此处: http//php.net/manual/en/language.operators.precedence.php

这是因为优先顺序

// The result of the expression (false || true) is assigned to $e
// Acts like: ($e = (false || true))
$e = false || true;

// The constant false is assigned to $f and then true is ignored
// Acts like: (($f = false) or true)
$f = false or true;

http://php.net/manual/en/language.operators.logical.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM