所以我刚开始学习PHP,我遇到了一个我不太理解的部分。
这本书给了我三行。
&&和true & true=true,其他每一个组合都会导致错误。 \ false=false,每个其他的组合都会导致真。 异或或假异或true=true,其他任何组合都会导致假。
如果有人能澄清这意味着什么,我将非常感激。
编辑
以下是我前一部分以上的案文。
每个方程都产生一个值: true(1)或false(0)。
echo true + true + false
这导致值为2 (1 +1+ 0)。
发布于 2014-04-01 17:55:58
这里提到了三个布尔运算符:&&
(逻辑和)、||
(逻辑OR)和XOR
(它是逻辑异或,或“独占or”)。所有这些都是二进制的,它们有两个操作数。显然,它的结果是一个布尔值-- true
或false
。
现在,它们的作用如下:
&&
时,true
才会产生true
,否则结果将是false
。||
时,false
才会产生false
,否则结果将是true
。XOR
还是false
,那么false
就会产生false
。但是,如果一个操作数计算为false
,另一个运算数为true
,则结果是true
。关于你问题的第二部分:这个.
echo true + true + false;
..。与布尔代数没有任何关系。+
的所有操作数首先由PHP文档的Type Juggling部分中描述的规则转换为数值类型。简而言之,true
被转换为1
,false
转换为0
;结果- 1 + 1 + 0
,或2
被打印出来。
发布于 2014-04-01 17:58:48
它指的是and
和&&
等具有不同运算符优先级的事实。
即,and
或or
函数与带有赋值语句的&&
和||
不同:
$f = false or true;
此外,这些运算符是短路操作符,所以如果您的值为false
作为第一个带有and
或&&
的操作数,则整个表达式将立即计算为false
,而不计算任何其他操作数。
http://www.php.net/manual/en/language.operators.logical.php
https://stackoverflow.com/questions/22793209
复制相似问题