こんにちは。
やらしみずです。
前回と同様に、ifを使わないでAND、ORのみで条件分岐をする方法をご紹介します。
・前回の記事:エルビス演算子が強い
普通にif文を書いてみる
1 2 3 4 5 6 7 |
# if文を使って書いた場合 if (isset($foo)) { $gre = "おはようじょ!!"; } if (isset($var)) { $gre = "さよならいおん!!"; } |
AND,ORを使って書いてみる
1 2 3 4 5 6 7 8 |
# OR AND を使って書いた場合 isset($foo) AND $gre = "おはようじょ!!"; isset($var) OR $gre = "さよならいおん!!"; #または $foo AND $gre = "おはようじょ!!"; $var OR $gre = "さよならいおん!!"; |
※右辺には、echo、returenなどは使えないので注意
見たとおりかもしれませんが、左辺の真偽値を判断して、右のコードを実行します。
ANDの場合は左辺がtrueだったら右辺を実行、
ORの場合は左辺がfalseだったら右辺を実行という感じですね。
一応if文を使っているときよりも若干スマートになっていると思います。
ただ変数に値を代入するだけであれば、前回のエルビス演算子のほうが使い勝手がいいので、ANDとORを使うのはretrun文の無い関数などを使うといいかもしれません。(じゃあそれで書けよって話ですが,,,)
最後に
コードゴルフはもっとえげつない省略の仕方をするそうなので勉強してみたいです!!
コメント
勉強になりました。
普通のif文のところが両方trueになるので、2つ目は ! isset が正しいのではないでしょうか?
変数をfoo,varと2つ定義してるので、!issetでもissetでもどちらでも良いですね。
ただ、たしかにに変数を一つ($foo=”test”とか)にしておいて、!issetを使ったほうがわかりやすいですね。
ご指摘ありがとうございます。もっとわかりやすく修正しようと思います。