0

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

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

还是我必须这样做:

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

3 回答 3

5

速记&=按位赋值操作,不等同于您的第二条语句。这与做的相同(注意单个&符号):

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

从我所见,你的“长”陈述似乎很好。

于 2012-01-10T22:47:53.047 回答
1

在 PHP 中,可以使用以下逻辑操作

$val1 && $val2
$val1 and $val2

或者

$val1 || $val2
$val1 or $val2

不是

! $val

异或

$val1 xor $val2

此外,请查看此页面。这两个运算符&&||具有不同的优先级andor

因此,您的第二个选择是要走的路:

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

BTW: I'd propose to always use === to compare for equality. === ensures that the types of its operands are identical and the values are, while == casts values.

于 2012-01-10T22:59:00.013 回答
0

我会做类似的事情:

$hasPermissions = (($hasPermissions) && (true === user_hasAppPermission($user_id, $permission))) ? true : false;
于 2012-01-10T22:48:14.077 回答