自分が勝手に思う、昔はともかく今はやったらダメなPHP

Icon comment count 0
Icon stock count 11

確かに便利だったり、必要な場面もたくさんあるんだけど、これはやったら大抵ヤバい、ということ。
書籍の批判みたいに見えるが「昔はこうだった」あるいは「昔つくられていたプロダクトがこうだからそれにのっとっている」のは仕方ないとは思う。

書き方が古いのは、メリットがほとんど無いし、だれもが出来れば新しくてイケてるほうがよいと思っているだろうから、がんばりましょう。

2015/05/01 12:32:49
 

<?php 〜 ?>
だけをつかうようにしよう
<?= $hoge ?>
も良いといわれているが、「多くの場合で」そもそもPHPから直接echoするべきではない。

 

「@」エラー制御演算子はダメ。これがあるコードは相当注意深く読むしかない。
エラーが発生しないように、事前に処理ができるかチェックするようにしよう。

チェックが複雑で、どうしてもエラーがおこるかもしれないというケースにおいても、@で処理せず、例外に変換した上でキャッチして正しい処理を記述するべき。

(ここでは詳しく説明しないが、
set_error_handler(function($errno, $errstr, $errfile, $errline){
throw new ErrorException($errstr, $errno, 0, $errfile, $errline);
});
などの指定を利用する)

 

requireだけをつかうようにすべき
includeは、読み込み失敗しても処理がすすんでしまう。読み込みが失敗しても処理をすすめてよいケースなどほとんどない。(PHPらしい、といえばそうなのだが、良いとは言えない)

 

リファレンスは可能な限り使わない。
「高速化につかえる」というのは大体の場合デマである。
(リファレンスがよくわかっていない時点で書くようなプログラムだと)foreachで元の配列を破壊的に操作したいとき以外は大体不要である。
とくに関数の引数でつかうのは可能なかぎり避けるべき(処理して、返値でもどして元の変数に代入すべき)

 

(よくわからずに)グローバル変数を使うな

 

配列の宣言にarray(〜)はもうつかうべきではない。[〜]をつかおう。

 

つづく。

このエントリーをはてなブックマークに追加

コメント

    コメントはありません