例えば以下のようなネストした三項演算子、結果は?
答えは「2」
これは三項演算子の結合規則が左結合のため。
先ほどのソースは以下のように展開される。
ネストした三項演算子はなるべく使わない、使う場合はカッコで演算順序を明示することが必要。
$flag1 = true;
$flag2 = false;
echo $flag1 ? 1 : $flag2 ? 2 : 0
$flag2 = false;
echo $flag1 ? 1 : $flag2 ? 2 : 0
答えは「2」
これは三項演算子の結合規則が左結合のため。
先ほどのソースは以下のように展開される。
echo ( ( $flag1 ? 1 : $flag2 ) ? 2 : 0);
ネストした三項演算子はなるべく使わない、使う場合はカッコで演算順序を明示することが必要。
次回記事:PHP:実行演算子
PHP学習
0 件のコメント:
コメントを投稿