有人可以详细解释这些if语句的作用吗?
在第一个中,三个===标志是什么,单个&在第二个意思?
$aProfile = getProfileInfo($iId);
if($aProfile === false)
return false;
if(!((int)$aProfile['Role'] & $iRole))
return false;
答案 0 :(得分:8)
===
测试类型安全相等。
'3' == 3
将返回true,但'3' === 3
将不会,因为一个是字符串而一个是整数。同样,null == 0
将返回true,但null === 0
将不会返回; 10.00 == 10
将返回true,但10.00 === 10
将不会。
&
是按位AND运算符。如果 both 从原始的两个位掩码中设置相应的位,它将返回一个位掩码,其中设置了一个位。
例如:
$x = 5;
$y = 17;
echo $x & $y;
导致1被回应。 $x
为...000101
,$y
为...010001
。在中中设置的唯一位是最右边的位,因此得到...000001
,即1。
答案 1 :(得分:3)