if-else文の制御構造の代替

今回phpのif文についての覚書です。今更ですが書き方でエラーになってしまったので記しておきます。
すぐに分かったんですが、同じ文を書いていてもエラーになるってあんまりないので残しておきます。

ワードプレスなどではifやfor、while、foreachなどはビューファイル用の書き方で記述しています。
大カッコ{}の代わりに:(コロン)を使うやり方です。


スポンサーリンク


これを使うことには問題がないのです。

しかし、下記2つの文で下の文の方はエラーが出るんです。なぜか。。。

一般的なif文

 $b) {
	echo 'bより大きい';
} else if ($a < $b) {
	echo 'aより大きい';
} else {
	echo '上記以外';
}		
?>

この書き方は一般的ですね。これは普通に動作します。下の文は:(コロン)を使った文です。

ビューファイル代替用if文


同じだ

$b):?>

bより大きい

aより大きい

上記以外

この文はエラーになります。

どこが悪いのか?

else ifの間が開いていてはダメみたい。

elseifならOKです。

なんでだろう。。。と思って調べてみたらマニュアルに書いてありました。
elseif

それから実は大カッコ{}なしでも動きます。
ですが複雑になるとわからなくなるし、エラーが出てくる場合があるのでやめましょう。

ショートコード用if文

if ($a == $b) 
	echo '同じだ!';
 else 
	echo '違う!';

こんな感です。これに更にelseifなんかが追加されると見難くてわかりづらくなるのでやめましょう。

それから上記のような簡単な分岐文なら三項演算子で使うことも可能です。
使い方: (条件文) ? true : false

三項演算子


以上if文についてでした。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です