无法理解此代码中的&
。我是php的初学者。请让我知道任何人都可以解决它吗?
$a = 1;
$b = &$a;
$a =5&$b;
echo $a;
exit();
答案 0 :(得分:4)
在此上下文中,&
是按位and
(bitwise operators)。
$a = 1; // the var a is now 1
$b = &$a; // the var b is now the var a (not the int 1)
$a =5&$b; // 5 & $b ( 1 = 0001) = ( 1 = 0001) & ( 5 = 0101)
echo $a; // prints 1
exit();
这样做是获取数字的位值(1 = 0001和5 = 0101)并应用和操作。
在此上下文中理解其他值的一些示例:
( 1 = 0001) = ( 1 = 0001) & ( 1 = 0001)
( 0 = 0000) = ( 1 = 0001) & ( 2 = 0010)
( 1 = 0001) = ( 1 = 0001) & ( 3 = 0011)
( 0 = 0000) = ( 1 = 0001) & ( 4 = 0100)
( 1 = 0001) = ( 1 = 0001) & ( 5 = 0101)
OP问道,更新:,我会尝试进一步解释:
按位AND
运算符将采用两个等长二进制表示并执行逻辑AND
。
逻辑AND
将采用两个操作数,当且仅当其所有操作数均为true
时才为true
。
所以例如:
operand 1 operand 2 result
true true true
false true false
true false false
false false false
请注意true = 1
和false = 0
。
所以要解释它在你的明确案例(1& 5)中会做些什么:
1
(0001
}和5
(0101
)的二进制表示。AND
(从右到左):
true
)false
)false
)false
)结果是0001
(1
的二进制表示)。