がるの健忘録 このページをアンテナに追加 RSSフィード

2016-07-28

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

まぁ結論からいうと「演算子の優先順位」の問題なんだけど。

できれば、可読性の観点からも「括弧付けようよ」とか思う。加えて「スペースの位置がおかしい」。


幾分もわっと、例題。

前提として

$bool = booleanな値

$s = stringな値('0'または'1'のみ)

ってのがあるです。

んで、コード。

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

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

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

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


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

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

だったんですねぇ。

ちなみに、&&をandに置き換えると、既存コードだと「結果が変わる」という(笑


まぁこの辺は、突き詰めると「好み」の問題もあるかとは思うのですが。

個人的には「優先順位を暗黙のうちに使うコード」ってのは、あまり、お好まないの感じですねぇ。


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

ひでのふひでのふ 2016/08/05 00:14 > 個人的には「優先順位を暗黙のうちに使うコード」ってのは、あまり、お好まないの感じ
ひでのふも昔はそう思っていたんだけど、Knuth先生から
「それは演算子の優先順位を理解していないバカのやることだ」
と聞いてから、止めました。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/gallu/20160728/p1