新しいPHP7null合体演算子を三項演算子と一緒に使用すると予期しない動作に直面します。
具体的な状況(ダミーコード):
function a()
{
$a = 1;
$b = 2;
return $b ?? (false)?$a:$b;
}
var_dump(a());
結果はint(1)です。
誰かが私に理由を説明できますか?
あなたのスペースは、phpが式を評価する方法を反映していません。ことに注意してください??
持っている高い優先順位三元表現よりを。
次の結果が得られます。
($b ?? false) ? $a : $b;
これは$a
、$b
そうでないnull
か、に評価される限りfalse
です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加