効率的なphpの書き方の共有

小云云
小云云オリジナル
2018-03-15 13:01:471505ブラウズ

この記事では主に効率的なphpの書き方を紹介しますので、お役に立てれば幸いです。

1. 静的 static

静的変数はクラスの作成で始まり、クラスの消滅で終わります。非静的変数は、クラス インスタンスの作成で始まり、クラス インスタンスの消滅で終わります。静的メソッドは直接呼び出すことができますが、インスタンス メソッドはインスタンスを通じて呼び出す必要があり、静的メソッドの方がはるかに高速です。 静的メソッドは常に同じメモリを呼び出し、自動的に破棄できませんが、インスタンス化によって破棄できます。

2. Echo は print

より効率的です。これは、echo は値を返さないのに対し、print は整数を返すためです。 注意,echo大字符串的时候,如果没有做调整就严重影响性能。使用打开apached的mod_deflate进行压缩或者打开ob_start先将内容放进缓冲区。

3. ループ中ではなく、ループの前に最大ループ数を設定します。

たとえば、for ループ内で毎回計算されます。

4. メモリ、特に大きな配列を解放する

これは、一般に、PHP の基礎となる zend エンジンが原因で発生します。つまり、C 言語で 100M のメモリを持つ配列は、PHP で 1G 必要になります。特に PHP をバックエンドサーバーとして使用するシステムでは、過剰なメモリ消費の問題が頻繁に発生します。

5. requiere_once() は比較的リソースを消費します。

これは、requiere_once がファイルが参照されているかどうかを判断する必要があるため、できるだけ使用する必要があります。一般的に使用される、回避する require/include メソッド。

6. include と require で絶対パスを使用します。

相対パスが含まれている場合、PHP は include_path を走査してファイルを見つけます。絶対パスを使用するとこのような問題が回避されるため、オペレーティング システムのパスを解決する時間が短縮されます。

7. PHP の内部文字列操作関数を使用できる場合は、正規表現よりも効率が高いため、それらを使用してみてください。str_replace 文字の置換は通常の置換 preg_replace よりも高速ですが、strtr は str_replace より 1/4 高速です。

また、置換がない場合でも、str_replace はパラメータにメモリを割り当てます。非常に遅い!解決策: strpos を使用して、まず (非常に高速に) 検索して置換が必要かどうかを確認し、必要に応じて置換します。効率: - 交換が必要な場合: 効率はほぼ同等で、その差は約 0.1% です。置換が必要ない場合: strpos を使用すると 200% 高速になります。

8. @ を使用しないことをお勧めします。エラーを隠すために @ を使用すると、実際にはバックグラウンドで多くの処理が実行されます。 。 @ を使用した場合と使用しない場合の効率の差は 3 倍です。特にループ内で @ を使用しないでください。5 ループのテストでは、最初に error_reporting(0) を使用してエラーをオフにし、ループが完了してからオンにすると、@ を使用するよりも高速になります。

9.$row['id'] は $row[id] より 7 倍高速です;

配列キーに引用符を追加する習慣を身に付けることをお勧めします;


10.

ループ内で関数を使用しないでくださいたとえば、For($x=0; $x < count($array); $x) の場合、count() 関数は最初に外側で計算します。 ;

11. 宣言されていないローカル変数の作成は、既に定義されているローカル変数よりも 9 ~ 10 倍遅くなります12。

13. Apache による PHP スクリプトの解析は、静的 HTML ページの解析より 2 ~ 10 倍遅くなります。

静的な HTML ページを増やし、スクリプトを減らします。

14. 単に変数をコピーしないでください

PHP コードをわかりやすくするために、一部の PHP 初心者 (私を含む) が、定義済みの変数を短い名前の変数にコピーすることがあります。実際、この結果、メモリ消費量が 2 倍になり、プログラムが遅くなるだけです。

15. select Branch ステートメントを使用する

switch case は、複数の if、else if ステートメントを使用するよりも優れており、コードが読みやすく、保守しやすくなります。

16. PHP のファイル操作は非効率ではありませんが、file、fopen、feof、fgets の代わりに file_get_contents を使用できます。 17.

できるだけ PHP 内部関数を使用します

18. foreach はより効率的です。while ループや for ループの代わりに foreach を使用するようにしてください。

19.ループ、特に大きいもの 変数: オブジェクト

20. グローバル変数については、使用後に unset() する必要があります

21。 ++$i よりも遅い。この違いは PHP に固有のものであり、他の言語には当てはまりません。ポストインクリメントでは、実際には、後でインクリメントされる一時変数が作成されます。プレフィックスの増分は、元の値に直接増加します。これは、Zend の PHP オプティマイザーによって行われるような、最適化の一種です。

関連する推奨事項:

Web アプリケーションを作成するための 6 つの効率的な PHP フレームワーク

PHP の本質を学び、効率的な PHP コードを書くパフォーマンス_PHP チュートリアル

PHP の本質を学び、Automatic を書く効率的な PHP コードのテスト_PHP チュートリアル

以上が効率的なphpの書き方の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。