eSys01krtt5. ぐーぐる
三項演算子を使った例
(◜◔。◔◝)(ん?これは三項演算子だ…。
これはちょっとわかりずらいやつか。)
11. Wikipediaより引用
• “CやJavaやPerlなどでは、a
?
b
:
c
?
d
:
e
は
a
?
b
:
(c
?
d
:
e)
という意味だが、PHPの三項
演算子では (a
?
b
:
c)
?
d
:
e
なので注意が必
要である。”(右結合か左結合か)
_人人人人人人人人人人人人人人人人人人人_
> 言語によって違うならもっとわからないよ! <
 ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
13. メリット
• If〜then〜elseでは書けないものを書くことが
できる(代替できないものも存在する 知らなかった )
例:const
bool
c
=
(a
!=
b)
?
true
:
false;
(がたつおはこれが理解できないので教えて下さい…)
出典:hGp://d.hatena.ne.jp/G_clown/20100806/1281088936
14. デメリット
• 可読性の問題
多くの人が読みづらい
↓
プログラミングの本来のメリットである
人間でも理解できるという点が損なわれる
• 少し調べた感じではPHPだけ?
言語によって左結合と右結合か違う
↓
複数の言語を扱う人にとって不便
15. しかし
“可読性がうんぬん言ってるのって
能力の低さの露呈では?”
という声もどっかで見た
もうやめて!たつおのライフはゼロよ!(´;ω;`)
また“俺が読めないコードはくそだ!”
という表現になるので可読性批判はちょっとよくない場合もあるらしい。
17. いろいろな三項演算子
• 多くの言語
条件式 ? 式1 : 式2
(PHPは左結合それ以外は右結合)
例:$flag1=true;
$flag2=false;
echo
$flag1
?
1
:
$flag2
?
2
:
0;
//出力は2
• Python
A
=
Y
if
X
else
Z(ちょっとわかりやすい!)
• シェルスクリプト
条件式 ? 式1 : 式2
(shでは使えない、bashのみ使用可能
さらに文字列は使えない)