dot*_*hen 0 php conditional logical-operators
为什么PHP 0在逻辑AND返回FALSE时返回,但0在条件AND返回FALSE时不返回?见证人:
php > function a(){
php { echo "a";
php { return FALSE;
php { }
php > function b(){
php { echo "b";
php { return TRUE;
php { }
php > echo (a() && b())."\n";
a
php >
php > echo (a() & b())."\n";
ab0
php >
Run Code Online (Sandbox Code Playgroud)
请注意,第二个echo语句以0,但第一个语句不以.为什么?
&&返回一个布尔值.false 转换为字符串时的布尔值是''空字符串.
&是一个按位和(不是"条件和",无论是什么),它产生一个数字(或二进制blob,取决于参数)作为结果.在这种情况下,操作产生数量0.