29
MAY
ウェブFRIDAY 2020 / 5 / 29
【反省】PHP5.4以降では <?= が標準で使えるようになっていたことを知らなかった
Text by Hiroyuki Matsumoto
PHP言語では <?php と ?> の間に命令を書き込むのですが、
ショートタグと呼ばれる略記法があり、そちらでは <? と ?> の間に命令を書き込むことができます。
ラクに記述することはできるのですが、PHPの設定によって利用できない場合があるため、PHP公式でも非推奨ですし、PHPのコーディング規約を定めた PSR においても使用は禁止されています。
昔、ある環境でショートタグで記述したプログラムが動かなくなり修正しまくったことがあり、ショートタグはマイルールで禁止していたのですが、<?= はPHP5.4以降ならば設定に関係なく使用できるということを最近知りましたのでここに反省いたします。
なおPHP5.4未満しか使えない環境はごく一部しか見たことがありません。
セキュリティサポートなんてとうの昔に終わっているので(5.3系は2014/08/14で終了)良い子は使ってはいけません。
ちなみに <?= は標準出力を簡易に書ける記法です。
下記の例だと、4行目と5行目は書き方は異なりますが、全く同じ動作となります。
<?php $name = 'Matsumoto'; ?> <p><?php echo $name ?></p> <p><?= $name ?></p>
※簡略化のために htmlspecialchars は使ってません
反省し、これからは積極的に使っていきたいと思います!
余談ですが以前痛い目をみたのが、PHP5.3しか使えなかったのがステップサーバーなんですけれど、ひょっとしたら今は改善しているのかなぁと調べてみたら、PHP5.6 と 7.3 が使えるようになっていました。
変更から反映まで6時間かぁ・・・
TEXT by
松本 博之(まつもとひろゆき)
1978年、鳥取県米子市生まれ。
株式会社マジックワード WEBシステムの開発・運用を担当。
WordPressの実績多数。表面的な使用方法を把握するだけでなく、WordPressのソースコードを読み解いて対応できます。
国家資格の応用情報処理技術者をなんとなくとりました。