这两个在php中的区别是什么?
if( $x==1 || $y==1) if( $x==1 && $y==1)
VS。 (分别)
if( $x==1 | $y==1) if( $x==1 & $y==1)
据我所知,他们都是一样的与||在PHP中。但必须有所不同!!!
答案 0 :(得分:6)
||
和&&
是布尔运算符,它们接受2个参数,将每个参数转换为布尔值,然后返回true
或false
。
|
和&
是按位运算符。他们将参数转换为二进制并比较每一位。它们返回二进制数。
答案 1 :(得分:2)
一个使用条件或和和,另一个使用按位或和和。
答案 2 :(得分:1)
||
这是条件OR
|
这有点明智or
$a | $b
Or
(包含或)设置$a
或$b
中设置的位$a & $b
And
设置$a
和$b
中设置的位。
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
不同。了解哪一个比另一个更合适。基本上=
的优先级高于and
和or
,但优先级低于&&
和||
。 logical operators部分的示例#1很好地解释了这一点。
使用其他语言,您只有&&
和||
,而不是and
和or
。
&
和|
是按位运算符。您可以阅读here。
按位运算符的典型用法是标志。一个常见的用途是PHP的error_reporting setting。