所以我刚开始学习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
复制相似问题