へと文私は論理演算を実装しようとしていますと、この短縮表記が許可されているかどうかと思いまして:PHP速記構文
$hasPermissions &= user_hasAppPermission($user_id, $permission);
または私はこれを行うにしています:
$hasPermissions = $hasPermissions && user_hasAppPermission($user_id, $permission);
へと文私は論理演算を実装しようとしていますと、この短縮表記が許可されているかどうかと思いまして:PHP速記構文
$hasPermissions &= user_hasAppPermission($user_id, $permission);
または私はこれを行うにしています:
$hasPermissions = $hasPermissions && user_hasAppPermission($user_id, $permission);
簡略&=
はbitwise assignment operationです。これは2番目の文と同じではありません。それは、(単一のアンパサンドに注意してください)やっと同じで次のようになります。私が見ることができるものから、
$hasPermissions = $hasPermissions & user_hasAppPermission($user_id, $permission);
は、あなたの「長い」ステートメントがあるとして罰金です。
ありがとう、ティム。それはまさに私が探しているものです。 –
私のようなものだろう:PHPで
$hasPermissions = (($hasPermissions) && (true === user_hasAppPermission($user_id, $permission))) ? true : false;
を、これらのlogical operationsが用意されています
と
$val1 && $val2
$val1 and $val2
OR
さらにませ
! $val
XOR
$val1 xor $val2
、look at this pageを持っています。 2つの演算子&&
と||
の優先順位は、and
とor
の順に異なります。ところで
$hasPermissions = $hasPermissions && user_hasAppPermission($user_id, $permission);
:
はこのように、あなたの 番目のオプションは、移動するための方法である私は常に平等のために比較すること===
を使用
に提案すると思います。 === ==
が値をキャストしている間、そのオペランドの型が同一で値が保証されます。
それはできますが、厳密には事故ではありません。あなたの変数が前の真のブール値であって、関数が真のブール値を返すならば、暗黙の型キャストは正しい結果につながります。しかし、本当に、あなたはすべきではありません。 – mario