所以,我只是做了一些随机测试和了解优先级和基本面||和或运营商,但我无法理解为什么$ F变化:逻辑运算符和优先级
$f = 0 || 1;
if ($f === 1){
echo "TRUE - $f";
}else{
echo "FALSE - $f";
}
$f = 0 or 1;
if ($f === 0){
echo "TRUE - $f";
}else{
echo "FALSE - $f";
}
感谢一些见解。
所以,我只是做了一些随机测试和了解优先级和基本面||和或运营商,但我无法理解为什么$ F变化:逻辑运算符和优先级
$f = 0 || 1;
if ($f === 1){
echo "TRUE - $f";
}else{
echo "FALSE - $f";
}
$f = 0 or 1;
if ($f === 0){
echo "TRUE - $f";
}else{
echo "FALSE - $f";
}
感谢一些见解。
这是正常始终计算True
。原因在于OR意味着如果其中一个值为True,它将采用这一个。
更新到新的问题:
答案是, “||”具有比更大的优先级“或”
// 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;
您可以在PHP手册网站here我发现这个例子
你在做什么是一样的:
if (($f = 0) or 1){
// $f is being assigned the value 0, and the condition evaluates 0 or 1,
// 1 being equivalent to true, the condition is always true.
echo "TRUE - $f";
}else{
echo "FALSE - $f";
}
和
if ($f = (0 || 1)){ // which gives $f = true which returns true
echo "TRUE - $f";
}else{
echo "FALSE - $f";
}
如果你想检查是否$ f等于一个值
或其他你会做
if ($f === 0 or $f === 1)
要知道,在PHP中,默认情况下,除非你做严格比较的INT 1将进行评估,以BOOL TRUE ===或!==
问题了解更多在这里:“如果($ F = 0或1){ “:
”=“ 意味着你给变量$ F值0
你应该使用:
如何尴尬,由于哈哈。 –
为什么如果($ f === 0或1)仍然评估为真,即使$ f为空? –
我可以看到你是新来的,所以如果这个答案解决您的问题,请把它标记为正确的答案,以帮助有同样的问题 – BlackM