gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

括弧は欲しいものである…

まぁ結論からいうと「演算子の優先順位」の問題なんだけど。
できれば、可読性の観点からも「括弧付けようよ」とか思う。加えて「スペースの位置がおかしい」。


幾分もわっと、例題。
前提として
$bool = booleanな値
$s = stringな値('0'または'1'のみ)
ってのがあるです。
んで、コード。

$flg = (!$bool && $s==""?"0":"1");


色々デバッグしてたのですが。ぱっと見、優先順位的に

$flg = ( (!$bool) && ($s==""?"0":"1"));

って見えるので、色々と悩んでいたのですが。


演算子の優先順位的に、上述って

$flg = ( (!$bool && $s=="") ? "0" : "1");

だったんですねぇ。
ちなみに、&&をandに置き換えると、既存コードだと「結果が変わる」という(笑


まぁこの辺は、突き詰めると「好み」の問題もあるかとは思うのですが。
個人的には「優先順位を暗黙のうちに使うコード」ってのは、あまり、お好まないの感じですねぇ。


ある意味興味深かったので、memo。