PHP開発者なら知っておきたい基礎知識

テクログ


多くのウェブサイトはすべてPHPを使っています。しかしそれが欠点がないのではありません。
それでは、私達はどのようにその欠点を改善することができて、コードの最大の性能を発揮できるか?本文はPHPコードの合理化する技巧に関していくつかを紹介しますので、ご参考出来ればと思います。

1.echo は print に比べて処理が早い

2.できるだけ、__get,__set,__autoloadを使用しないほうがいい

3.str_replace関数やpreg_replace関数ではなく、strtr関数を使用する

4.includeやrequireはフルパスがいい

5.time()ではなく$_SEVER[‘REQUEST_TIME’]を使う

6.$row[‘id’]ではなく$row[id]の方が効率である

7.forではなくforeachを使う

8.if (strlen($foo) < 8)ではなくif (!isset($foo{8}))のように書く

9.if 文と switch 文について
選択する処理が複数になる場合 switch 文を使う方が効率できである。if 文では、最初から順に判定していくのに対して、switch 文では、いきなり case に飛ぶという違いがある。例えば、判定が多くて、else if をずらずらと書くと、最後の方のelse if を実行するために最初から全部判定していかなければならない。つまり、無駄にCPUを使用することにもなりかねない。ただし、switch(式) の式の値は、整数のみという条件がある。

10.ダブルクォーテーションとシングルクォーテーションの違い
ダブルクォーテーションは括った文字列内に変数があると、変数の内容を反映する。エスケープ文字「¥n」も改行コードとして認識される。シングルクォーテーションは括った文字列内に変数またはエスケープ文字「¥n」があっても、変数名自体を文字列として反映する。そして、シングルクオーテーションのほうが処理速度が早い。

11.char 型と varchar 型の違い
char 型のカラムはデータ挿入時に指定サイズ分が記憶領域に確保されるが、varchar 型のカラムでは必要な分のみ確保される。
varchar 型のカラムのデータを格納されているデータより大きなサイズのデータに更新しようとしたときに、再度記憶領域のサイズを確保する処理が行われる事がある。

12.mysql_pconnect と mysql_connect の比較
mysql_pconnectだと、1,2回(リクエスト数が増えると、少し増える。)しかMySQLにコネクトせず、その接続を別リクエストも使える。明示的にクローズできない。mysql_connectは、引数が同じだと、1回目しかMySQLにコネクトしない。最後に自動で接続をクローズする。

13.require文とinclude文の違い
require文は、ループ処理の中に置いて、毎回異なるファイルを読み込むことはできないが、include文は可能。またエラーについて、require()は「Fatal Error」となり処理を停止するが、 include()は「Warning」を出力しながら、読み込むべきファイルが存在しない場合も処理を続行する。

14.require_once文について
require_once文は、require()関数と同様に、スクリプト内で別ファイルを読み込むことができる。require()関数と異なる点は、require()関数は外部ファイルを取り込む回数に制限がないのに対して、 require_once()関数は外部ファイルを1回だけ取り込む。

15.include_once文について
include_once文は、include()関数と同様に、スクリプト内で別ファイルを読み込むことができる。include_once()関数も、require()関数とrequire_once()関数との違いと同様に、 include_once()関数は外部ファイルを1回だけ取り込む。

次回も引き続きPHPについて書こうと思います。

▼ やたらテクってる 関連記事