首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >学习PHP,布尔代数

学习PHP,布尔代数
EN

Stack Overflow用户
提问于 2014-04-01 17:50:26
回答 2查看 377关注 0票数 2

所以我刚开始学习PHP,我遇到了一个我不太理解的部分。

这本书给了我三行。

&&和true & true=true,其他每一个组合都会导致错误。 \ false=false,每个其他的组合都会导致真。 异或或假异或true=true,其他任何组合都会导致假。

如果有人能澄清这意味着什么,我将非常感激。

编辑

以下是我前一部分以上的案文。

每个方程都产生一个值: true(1)或false(0)。

代码语言:javascript
运行
复制
echo true + true + false

这导致值为2 (1 +1+ 0)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-01 17:55:58

这里提到了三个布尔运算符:&& (逻辑和)、|| (逻辑OR)和XOR (它是逻辑异或,或“独占or”)。所有这些都是二进制的,它们有两个操作数。显然,它的结果是一个布尔值-- truefalse

现在,它们的作用如下:

  • 只有当两个操作数都计算为&&时,true才会产生true,否则结果将是false
  • 只有当两个操作数都计算为||时,false才会产生false,否则结果将是true
  • 如果操作数的计算值相同--不管是XOR还是false,那么false就会产生false。但是,如果一个操作数计算为false,另一个运算数为true,则结果是true

关于你问题的第二部分:这个.

代码语言:javascript
运行
复制
echo true + true + false;

..。与布尔代数没有任何关系。+的所有操作数首先由PHP文档的Type Juggling部分中描述的规则转换为数值类型。简而言之,true被转换为1false转换为0;结果- 1 + 1 + 0,或2被打印出来。

票数 3
EN

Stack Overflow用户

发布于 2014-04-01 17:58:48

它指的是and&&等具有不同运算符优先级的事实。

即,andor函数与带有赋值语句的&&||不同:

代码语言:javascript
运行
复制
$f = false or true;

此外,这些运算符是短路操作符,所以如果您的值为false作为第一个带有and&&的操作数,则整个表达式将立即计算为false,而不计算任何其他操作数。

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

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

https://stackoverflow.com/questions/22793209

复制
相关文章

相似问题

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