PHP中if($ x = 1 || $ y = 1)和if($ x = 1 | $ y = 1)之间的区别是什么

时间:2012-11-20 03:43:24

标签: php html

  

可能重复:
  Reference - What does this symbol mean in PHP?

这两个在php中的区别是什么?

 if( $x==1 || $y==1)   if( $x==1 && $y==1)

VS。 (分别)

 if( $x==1 | $y==1)    if( $x==1 & $y==1)

据我所知,他们都是一样的与||在PHP中。但必须有所不同!!!

5 个答案:

答案 0 :(得分:6)

||&&是布尔运算符,它们接受2个参数,将每个参数转换为布尔值,然后返回truefalse

|&按位运算符。他们将参数转换为二进制并比较每一位。它们返回二进制数。

答案 1 :(得分:2)

一个使用条件,另一个使用按位

答案 2 :(得分:1)

||这是条件OR
|这有点明智or

  1. $a | $b Or(包含或)设置$a$b中设置的位
  2. $a & $b And设置$a$b中设置的位。
  3.               if( $x==1 || $y=1)             if( $x==1 && $y==1)
    
      if body --> if one of them is true            both is true
    

答案 3 :(得分:0)

首先关闭:if( $x=1 || $y=1)会将$ x设置为值1,将$ y设置为值1。

正确的语法是:

if( $x==1 || $y==1)

可以用词语更好地表达差异:

if( $x==1 OR $y==1) `if( $x==1 AND $y==1)

双符号和双管称为逻辑运算符。 see more here

单个&符号和单个管道是按位语句。 see more here

答案 4 :(得分:0)

文档是你的朋友。 &&||是逻辑运算符。您可以阅读有关他们的更多信息here

我强烈建议您阅读operator precedence并了解为什么&&and||or不同。了解哪一个比另一个更合适。基本上=的优先级高于andor,但优先级低于&&||logical operators部分的示例#1很好地解释了这一点。

使用其他语言,您只有&&||,而不是andor

&|是按位运算符。您可以阅读here

按位运算符的典型用法是标志。一个常见的用途是PHP的error_reporting setting