PHP コード最適化スキルの概要 (PHP 最適化に関する 36 のヒント)
この記事では、PHP コードの最適化に関するいくつかのヒントを紹介します。必要な場合は参考にしてください。
1. メソッドが静的である可能性がある場合は、それを静的として宣言すると、速度が 1/4 増加します。 2. Echo は print より効率的です。これは、print が整数を返すのに対し、echo は値を返さないためです。 3. ループの最大数は、ループ中ではなく、ループの前に設定します。 4. 変数を破棄してメモリ、特に大きな配列を解放します。 5. __get、__set、__autoload などのマジック メソッドの使用は避けてください。 6. requirere_once() はより多くのリソースを消費します。 7. include と require で絶対パスを使用すると、パスの分析にかかる時間が短縮されます。 8. sexinsex からスクリプトが実行されるまでの時間を取得する必要がある場合は、time() よりも $_SERVER['REQUSET_TIME'] の方が適しています。 9. 正規表現よりも効率的な文字処理関数を使用できる場合は、それらを使用してみてください。// 10. str_replace 文字置換は通常の置換 preg_replace より高速ですが、strtr は str_replace より 1/4 高速です。 11. 関数が文字置換などのパラメータとして配列と単純な文字の両方を受け入れることができ、パラメータ リストが長すぎない場合は、配列を文字置換として受け入れる代わりに、より簡潔な置換ステートメントを使用して一度に 1 文字だけを置換することを検討できます。パラメータを検索して置換します。大きなものは小さなものに還元され、1+1>2。 12. @ を使用してエラーを隠すと、スクリプトの速度が低下します。 13. $row['id'] は $row[id] より 7 倍高速です。配列キーに引用符を追加する習慣を身に付けることをお勧めします。 14. エラーメッセージは便利です。 15. ループ内で関数を使用しないでください。たとえば、For($x=0; $x prop++) はローカル変数よりも 3 倍遅くなります。 18. 宣言されていないローカル変数の作成は、初期化されたローカル変数よりも 9 ~ 10 倍遅くなります。 19. どの関数でも使用されていないグローバル変数を宣言すると、パフォーマンスも低下します (同じ数のローカル変数を宣言するのと同じです)。PHP では、グローバル変数が存在するかどうかを確認することがあります。 20. メソッドのパフォーマンスは、クラスに定義されているメソッドの数とは関係がありません。テスト対象のクラスに 10 個以上のメソッドを追加してもパフォーマンスに違いはありません (これらのメソッドはテスト メソッドの前後にあります)。 21. サブクラスのメソッドのパフォーマンスは、基本クラスのメソッドよりも優れています。 22. パラメーターを 1 つだけ呼び出し、関数本体が空の関数の実行には 7 ~ 8 回の $localvar++ 操作が必要ですが、同様のメソッド (クラス内の関数) の実行には約 15 回の $localvar++ 操作が必要です。 23. 文字列を出力するときは、ドットの代わりにカンマを使用する方が高速です。注: これはエコーに対してのみ機能します。この関数はパラメーターとしていくつかの文字列を受け入れることができます。 24. Apache サーバーでは、PHP スクリプト ページの生成には、対応する HTML 静的ページよりも少なくとも 2 ~ 10 倍の時間がかかります。より多くの静的 HTML ページと少数のスクリプトを使用することをお勧めします。 25. キャッシュをインストールしていない限り、PHP スクリプトはアクセスされるたびに再コンパイルする必要があります。 PHP キャッシュ プログラムをインストールすることをお勧めします。これにより、コンパイルの繰り返しが不要になり、パフォーマンスが 20 ~ 100% 大幅に向上します。 26. ネットワーク アプリケーションのパフォーマンスを向上させ、データベースの負担を軽減するには、高性能の分散メモリ オブジェクト キャッシュ システムである memcached を使用することをお勧めします。 27. ip2long() 関数と long2ip() 関数を使用して、IP アドレスを整数型に変換し、文字型ではなくデータベースに格納します。これにより、保管スペースが約 1/4 に削減されます。同時に、住所を素早く並べ替えて検索することができます。 28. checkdnsrr() を使用して、ドメイン名の存在を通じて一部の電子メール アドレスの有効性を確認します。この組み込み関数により、各ドメイン名が IP アドレスに対応していることが確認されます。 29. php5 および mysql4.1 以降を使用している場合は、mysql_* の改良された関数 mysqli_* の使用を検討してください。 30. 三項演算子 (?:) を使用してみてください。 31. プロジェクトを完全にやり直すことを考える前に、PEAR に必要なものがあるかどうかを確認してください。 PEAR は、多くの PHP 開発者が知っている巨大なリソース ライブラリです。 32. 適切にフォーマットされたページのソース コードのコピーを自動的に印刷するには、highlight_file() を使用します。 33. error_reporting(0) 関数を使用して、潜在的に機密情報がユーザーに表示されないようにします。理想的には、php.ini ファイルでエラー報告を完全に無効にする必要があります。ただし、共有仮想ホストを使用していて php.ini を変更できない場合は、各スクリプト ファイルの最初の行に error_reporting(0) 関数を追加することをお勧めします (または、require_once() でロードする)。エラー発生時に機密性の高い SQL クエリとパスが表示されないように保護します。 34. データベースへの格納(取得)時に大容量文字列を圧縮(解凍)するには、gzcompress()、gzuncompress()を使用します。この組み込み関数は、gzip アルゴリズムを使用して最大 90% 圧縮できます。 35. パラメータ変数のアドレスを参照することで関数に複数の戻り値を持たせる。変数の前に「&」を追加すると、変数を値ではなくアドレスで渡すことを示すことができます。 36. strlen() の使用は、小文字やハッシュ テーブル クエリなどの他の操作を呼び出す必要があるため、それほど高速ではありません。isset() を使用すると、strlen() よりも高速になります。 興味があるかもしれない記事: PHP コードを最適化するための 40 のヒント |

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。
