首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP中or运算符的行为

PHP中or运算符的行为
EN

Stack Overflow用户
提问于 2012-08-31 18:12:28
回答 2查看 1.7K关注 0票数 48

我正在尝试理解or运算符的行为。请参考以下示例:

$e = false || true;
var_dump($e);

输出结果与预期一致:bool(true);

$f = false or true;
var_dump($f);

输出结果与预期一致:bool(false)。我在某种程度上理解了这一点,即=Or具有更高的优先级,这就是为什么将$f分配给false

但是下面的代码与我所想的完全相反。我认为$foo将被分配给5,然后与其自身进行比较。但是,只有当设置了$foo时,才会分配$foo,这意味着它正在检查之前是否为$foo分配了任何内容,并将5分配给它。

$foo or $foo = 5; 

有人能解释一下为什么会这样吗?

EN

回答 2

Stack Overflow用户

发布于 2012-08-31 18:24:49

$foo or $foo = 5;

Suppose let say $foo=true or $foo=5;

这里它不会计算after或运算符表达式,因此输出将是$foo=1,现在表达式是

$foo=false or $foo=5;

在这里,它将计算after或as =更高的优先级,因此它将计算$foo=5,因此输出将为5。但是,当我们计算$foo=false or true时,此处它将考虑=更高的优先级,因此输出将为$foo=false,但整个表达式将计算为true,因为false or true变为false

票数 3
EN

Stack Overflow用户

发布于 2012-08-31 18:25:36

<?php
$foo = false;
$foo or ($foo = '5');
echo $foo;
?>

选中此选项,您可以为$foo指定值"5“。

or相比,=具有更高的优先级。这是事实..。:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12213283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档