php中&&与&有什么区别

如题所述

PHP中&&与&的区别:

1、运算符性质的区别

&&在PHP中是一个逻辑操作符,也叫条件操作符。

&是逻辑语言,逻辑上表示两者属于缺一不可的关系,还可以表示一个人和另外一个人之意,与and同义。如A&B,表示A与B,A和B,A×B。

2、作用上的区别

&&就是判断两个表达式的真假性,只有两个表达式同时为真才为真,有一个为假则为假,具有短路性质。

&是将两个二进制的数逐位相与,结果是相与之后的结果。

3、用途上的区别

&&:x&&y——功能描述: “条件与”:x和y均为true,取值是true,否则取值是false。&&需要两个操作数的值都是true时,才取值true,但是两个操作符还是有区别的:使用方法是int&& rx=x。

&:是一个位运算符。参加运算的两个数的二进制形式,每一个二进制位进行”与“运算,最后的结果二进制作为结果,例如:3 & 5=1,因为3和5的二进制分别是0011、0101,两个进行与运算的结果是0001。

参考资料来源:百度百科 &&

参考资料来源:百度百科 &

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-29
&&是逻辑运算”与“,参加运算的两个量理解为逻辑值TRUE、FALSE在进行运算,两个值都为TRUE时结果为TRUE,否则结果为FALSE,例如:3 && 5的结果为TRUE。

&是数学运算”按位与“,参加运算的两个数的二进制形式,每一个二进制位进行”与“运算,最后的结果二进制作为结果,例如:3 & 5=1,因为3和5的二进制分别是0011、0101,两个进行与运算的结果是0001。
第2个回答  推荐于2017-10-11
完全不一样的东西。
&&是逻辑运算符,代表“并且”也就是常说的 AND。常见的还有如下几个:

!$a Not(逻辑非) TRUE,如果 $a 不为 TRUE。
$a && $b And(逻辑与) TRUE,如果 $a 与 $b 都为 TRUE。
$a || $b Or(逻辑或) TRUE,如果 $a 或 $b 任一为 TRUE。
---------
&是位运算符,$c = $a & $b, 将把 $a 和 $b 的二进制位中都为 1 的位设为 1。
如5&3
=>101 & 11 这个是二进制
=>1追问

谢谢

追答

你的问题解决了吗?解决了的话 麻烦采纳答案啊

本回答被提问者采纳
第3个回答  2019-04-22
在其他语言里&既是逻辑运算符也是位运算符,因为他是强类型语言,不会有复杂的类型转换问题,运算场景很单一 ,只有布尔和数值2种类型
php中 逻辑运算符中的与的形式只有&&和and 没有& ,或也是一样
&在php中只会当位运算符处理,因为php的数据类型都是可以相互转换进行运算的,这会增加逻辑与&和按位与&之间的运算上的歧义,不知道到底这个运算符是当做那种运算符进行使用
如果&是按照运算环境不同而当成不同的运算符使用, 那么下面这个表达式到底该怎么运算?是转换成布尔类型进行逻辑运算?还是转换成数字类型进行位运算?只会增加复杂性,所以php中 &如果2边都有操作数,统一当做位运算符使用,所以下列输出结果就是1 可以使用var_dump函数输出就能看到真实的运算后的类型
"1"&"1"
逻辑与&和and的区别就是:
&在表达式左边为假的时候,右边就不判断了,而and是左边假,右边依然进行判断,效率低些
or与||同理
第4个回答  2011-04-27
如果是用做逻辑与的话是没什么区别的
但是一个&放在变量前面就是引用传值追问

谢谢

追答

谢谢管什么用啊,你倒是采纳啊。。。