[PHP] 構文省略形の書き方 タグとif文
省略タグ
閉じタグは書かない
「省略できる」ではなく、省略するべきで、公式でも省略が推奨されている。Zend Frameworkなど一部PHPフレームワークでは規約として「記述してはいけない」となっている。
HTMLに埋め込むなどのときは、もちろん閉じタグが必要。
理由:閉じタグを記述すると、直後の空白や2行目以降の改行が認識(出力)され、バグの原因になるため。(改行は、閉じタグ直後の1つは認識されない)
echoの省略形
HTMLに埋め込むときなんかに便利。省略してもしなくても、速度に違いはないよう。// いつもの
<?php echo $hoge; ?>
// 省略形
<?=$hoge?>
if文の書き方
コロン
HTMLに埋め込むときに便利。
if ($hoge === 'hoge') :
echo 'HOGE';
else :
echo 'hogehoge';
endif;
// WordPressとかでよく見るやつ。
<?php if ($hoge === 'hoge') : ?>
<?=$hoge?>
<?php else : ?>
<?='HOGEHOGE'?>
<?php endif; ?>
三項演算子
演算子の1つで、条件演算子とも呼ばれる。
基本構文 (条件式) ? (真式) : (偽式);
使い方
$str = ($hoge === 'hoge') ? 'HOGE' : 'hogehoge';
//または
$str = $hoge === 'hoge' ? 'HOGE' : 'hogehoge';
//または
$hoge === 'hoge' ? $str = 'HOGE' : $str = 'hogehoge';
echo $str
条件式の()は省略可。
1行で括弧の省略
条件式の後の命令が1つである場合、波括弧{}の書略が可能。命令が2つ以上になる場合は、括弧の省略はできない。
if ($hoge === 'hoge')
echo 'HOGE';
else
echo 'hogehoge';
こう書いてあるの見たことあるけど、括弧省略は絶対やめてほしい。すごく見にくいし、修正が大変。
Appleでもこの書き方が原因のバグが見つかった。個人的に年配者が使ってるイメージがある。
Appleでもこの書き方が原因のバグが見つかった。個人的に年配者が使ってるイメージがある。