我正在尝试实现逻辑连接AND,并且想知道是否允许使用这种速记符号:
$hasPermissions &= user_hasAppPermission($user_id, $permission);
或者我必须这样做:
$hasPermissions = $hasPermissions && user_hasAppPermission($user_id, $permission);
答案 0 :(得分:5)
简写&=
是bitwise assignment operation,与您的第二个陈述不同。这与做(注意单个&符号)相同:
$hasPermissions = $hasPermissions & user_hasAppPermission($user_id, $permission);
从我所看到的情况来看,你的“长篇”陈述似乎很好。
答案 1 :(得分:1)
在PHP中,这些logical operations可用:
和强>
$val1 && $val2
$val1 and $val2
或强>
$val1 || $val2
$val1 or $val2
不会强>
! $val
<强> XOR 强>
$val1 xor $val2
此外,还有look at this page。两个运算符&&
和||
的优先级不同于and
和or
。
因此,第二个选项是可行的方法:
$hasPermissions = $hasPermissions && user_hasAppPermission($user_id, $permission);
BTW:我建议始终使用===
来比较平等。 ===确保其操作数的类型相同且值为==
,并且值为{。}}。
答案 2 :(得分:0)
我会做类似的事情:
$hasPermissions = (($hasPermissions) && (true === user_hasAppPermission($user_id, $permission))) ? true : false;