AND语句的PHP速记语法

时间:2012-01-10 22:45:07

标签: php bit-manipulation shorthand

我正在尝试实现逻辑连接AND,并且想知道是否允许使用这种速记符号:

$hasPermissions &= user_hasAppPermission($user_id, $permission);

或者我必须这样做:

$hasPermissions = $hasPermissions && user_hasAppPermission($user_id, $permission);

3 个答案:

答案 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。两个运算符&&||的优先级不同于andor

因此,第二个选项是可行的方法:

$hasPermissions = $hasPermissions && user_hasAppPermission($user_id, $permission);

BTW:我建议始终使用===来比较平等。 ===确保其操作数的类型相同且值为==,并且值为{。}}。

答案 2 :(得分:0)

我会做类似的事情:

$hasPermissions = (($hasPermissions) && (true === user_hasAppPermission($user_id, $permission))) ? true : false;