この記事の提案は、PHP コードのパフォーマンスの問題のほとんどをカバーしています。小規模な Web サイトや小規模なプロジェクトに取り組んでいる場合は、これらの提案を無視しても問題ありませんが、長期的で安定したサービスを多数のユーザーに提供する場合は、注意を払う必要があります。開発者はプロジェクトの開始時からこれらの提案を考慮する必要があります。これにより、Web サイトのパフォーマンスが大幅に向上します。
PHP では、同じ目的を達成するために通常多くの方法がありますが、開発者は通常、最も使い慣れていて使いやすい方法を選択しますが、注意しなければならないことがいくつかあります。
- エコーは印刷よりもはるかに高速です。どちらのメソッドもページ上に何かを印刷しますが、echo は値を返さず、print は成功または失敗に応じて 0 または 1 を返します。
- include_once は include よりも時間がかかります。インクルードしたいクラスがインクルードされているかどうかを確認する必要があるためです。
- 長い段落文字列には二重引用符ではなく必ず一重引用符を使用してください。二重引用符で文字列内の変数を検索するためです。例: echo 'This is long string'.$name は echo 'This is long string $name' よりもはるかに高速です。
- ループ内で for($i=0;$i
- 関数を静的として定義できる場合は、静的関数はメンバー関数よりも 33% 高速です。
- 正規表現を使用せずに問題を解決できる場合は、正規表現を使用しないでください。正規表現は、PHP のネイティブ関数よりも遅くなります。たとえば、preg_replae の代わりに str_replace を使用します。
- ファイルを含めるのに相対パスを使用しないようにしてください。相対パスでファイルを検索する場合は、現在のディレクトリから順に検索されます。これにより、ファイルの検索が非常に遅くなります。最初に WEB_ROOT のような定数を定義し、次にこの定数を使用してファイルをインクルードすることをお勧めします。
- 合同記号 === は等価 == より高速です。そして、if(1 == '1') は true を返し、if(0 == ") も true を返します。合同記号を使用する場合は、if(1 ==='1') と if(0= == ") は false を返します。したがって、プログラム内でいくつかのブール変数を検出する必要がある場合は、合同記号を使用するのが最善です。
- 他のサーバーにプログラムをデプロイするときに問題が発生する可能性が高くなるため、省略形 を使用せず、
- register_global や magic_quote を使用したり依存したりしないことをお勧めします。php.ini の読み取りと設定には注意してください。
ここでは最適化のすべての側面がカバーされているわけではありません。RockUX では後の記事で説明します。もっと注意してください。
転載する場合は明記してください:
著者: RockUX-WEB フロントエンド
出典: PHP コードのパフォーマンスを向上させる 10 の提案