目次
1. mysql_ クラス関数を使用しないでください
2. 役に立たないコードを書かないでください
3. ファイルの最後に PHP 終了タグを使用しないでください
4. 必要な場合を除き、パラメーターを参照渡ししないでください
5. ループ内でクエリを使用しないでください
6. SQL クエリでは *
7. ユーザー入力を信頼しない
8. 賢くならないでください
9. 車輪を再発明しないでください
10. 他の言語を見落とさないでください
ホームページ バックエンド開発 PHP7 PHP7 で注意する必要がある落とし穴は何かご存知ですか?

PHP7 で注意する必要がある落とし穴は何かご存知ですか?

Sep 25, 2021 pm 05:21 PM
php7

1. mysql_ クラス関数を使用しないでください

最後に、mysql__ 関数を使用しないことを提案するプロンプトを表示する必要がなくなりました。 PHP 7 ではそれらがコアから完全に削除されているため、これは、より優れた mysqli__ のような関数、またはより柔軟な PDO レイヤーに移行することを意味します。

2. 役に立たないコードを書かないでください

これは無知な提案のように思えますが、PHP7 の速度が向上するにつれて、いくつかの問題が隠蔽され、その重要性がますます高まっています。 PHP7 に切り替えるとサイトが速くなったからといって満足しないでください。

速度の重要性とそれをより良くする方法を理解するには、記事「加速最適化の初心者ガイド」を参照してください。

開発者としては、スクリプトがオンデマンドでロードされること、可能な場合は結合されること、効率的なデータベース クエリを作成すること、可能であればキャッシュを使用することなどを確認する必要があります。

3. ファイルの最後に PHP 終了タグを使用しないでください

何気なく見てみると、ほとんどの WordPress コア コード ファイルでは、ファイルの最後にある PHP 終了タグが省略されていることがわかります。終わり。実際、Zend Framework は特に終了タグを無効にします。これは PHP では必要ありません。ファイルの最後でこれを省略すると、末尾に余分な空白がなくなります。

4. 必要な場合を除き、パラメーターを参照渡ししないでください

私は個人的に、パラメーターを参照渡しすることはあまり好きではありません。確かに状況によっては役立つこともありますが、ほとんどの場合、コードが理解しにくくなり、従うのが難しくなり、結果の予測が難しくなります。

人々は参照によってコードが高速になると考えていますが、The Respectable PHP Programmer のこの記事が指摘しているように、そうではありません。

PHP の組み込み shuffle() または sort() 関数は、パラメータの参照渡しの悪い例です。これは、シャッフルまたはソートされた配列を返すのではなく、元の配列を変更しますが、これは私たちの希望に完全に反します。

5. ループ内でクエリを使用しないでください

最悪のことは、ループ内でデータベース クエリを使用することです。システムに不必要なストレスがかかりますが、ループの外でクエリを使用すると、同じ結果をより速く得ることができる可能性が高くなります。このように使用しなければならない状況に遭遇した場合、私は通常、クエリを 2 つのクエリに分割して配列を構築することで問題を解決します。次に、クエリをループせずに配列をループします。

WordPress の動作方法により、これには例外がいくつかある場合があります。 get_post_meta() はデータベースからメタデータを取得します。これは、特定の投稿のメタデータをループする場合にループで使用できます。これは、WordPress が最初に使用するときに実際にすべてのメタデータを取得し、キャッシュするためです。後続の呼び出しでは、実際にはデータベースを呼び出すのではなく、キャッシュされたデータを呼び出します。

これらの問題を解決する最善の方法は、関数のドキュメントを読み、クエリ リスナーのようなものを使用することです。

6. SQL クエリでは *

を使用しないでください。まあ、これは MySQL に関する質問ですが、私たちは SQL ステートメントをコードで記述することを好むので、これは公正だと言えます。ゲーム。いずれの場合も、ワイルドカードの使用を避けられる場合は、特にデータベースに多くのフィールドがある場合は使用しないでください。

必要なフィールドを明示的に指定し、それらのフィールドのみを取得します。これにより、メモリを節約し、データを保護し、内容をより明確にすることができます。

SQL 側では、利用可能な関数について可能な限り学習し、速度をテストします。平均や合計を計算したり、同様の数値を計算したりする場合は、PHP 関数の代わりに SQL 組み込み関数を使用します。クエリの速度がわからない場合は、クエリをテストし、他のアプローチと比較して、最適なアプローチを選択してください。

7. ユーザー入力を信頼しない

ユーザー入力を信頼するのは賢明ではありません。ユーザー入力の場合、フィルター、サニタイズ、エスケープ、検証、フォールバックの使用が常に必要になります。ユーザー入力には 3 つの問題があります。それは、私たち開発者がすべての可能性を考慮することは不可能であること、頻繁な間違い、および意図的に悪意のある入力です。

よく考えられたシステムであれば、これらすべての問題を防ぐことができます。データベースを使用するときは、filter_var() などの組み込み関数を必ず使用して、有効性のチェック、エスケープなど、できる限りのことを行ってください。

WordPress には役立つ機能がたくさんあります。ユーザーデータの検証、エスケープ、サニタイズについて詳しくは、この記事をご覧ください。

8. 賢くならないでください

あなたの目標は、希望を明確に表現するエレガントなコードを書くことです。変数名を短縮したり、マルチレベルの三値論理演算やその他のトリックを使用したりすることで、各ページの読み込み時間を 0.01 秒短縮できるかもしれませんが、あなたやあなたのチームに頭痛の種を与えたり、メンテナンスを困難にしたりする結果と比べれば、損失に見合う価値はありません。

変数に適切な名前を付け、コードのドキュメントを簡潔かつ明確に記述します。インライン コード コメントを大量に使用するよりも、標準化されたオブジェクト指向コーディング スタイルを使用し、それを多かれ少なかれ文書化する方が良いでしょう。

9. 車輪を再発明しないでください

PHP は以前から存在していましたが、Web サイト開発はさらに古くから存在していました。あなたがやったことは何でも、誰かが以前にやったことがあるのです。他の人のサポートに頼ることを恐れないでください。Github、Composer、Packagist はすべてあなたのメンターです。

ロガーからカラー プロセッサ、プロファイラーから単体テスト フレームワーク、Mailchimp API から Twitter Bootstrap まで、すべてがボタンをクリックするだけ (またはコマンドを実行するだけ) なので、ぜひ使用してください。

10. 他の言語を見落とさないでください

PHPer であれば、少なくとも HTML、CSS、JavaScript、MySQL を知っていることが現在では標準的です。これらの言語をうまく扱えるようになったら、JavaScript をもう一度学習しましょう。 JavaScriptはjQueryではありません。 jQueryを効果的に活用するにはJavaScriptを学習する必要があります。

PHP でオブジェクト指向のすべてを学ぶこともお勧めします。これは命の恩人であり、コードを桁違いに改善します。また、C# や Java などの言語への扉も開くことができ、一度使用経験があると、オブジェクト指向プログラミング (OOP) を理解しやすくなります。

パッケージ管理、ビルド スクリプト、Coffeescript、LESS、SASS、YAML、テンプレート エンジン、その他の便利なツールを学習して知識を広げます。また、他のフレームワーク、特に Laravel を検討することを心からお勧めします。

これらを十分に行ったら、Ruby、Ruby on Rails、Android、iPhone、Windows Phone 向けのアプリ開発を検討してみてはいかがでしょうか?これらは自分のコンフォートゾーンや仕事の要件から外れているので無意味だと思うかもしれませんが、まさに重要な点です。どの言語にも、教育上役立つ知識と無害な追加情報がいくつかあります。トップの PHP 開発者は皆、他のプログラミング言語を知っています。これは偶然ではありません。

推奨学習: 「PHP7 チュートリアル

以上がPHP7 で注意する必要がある落とし穴は何かご存知ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

php7がTCPポートが機能していないことを検出した場合の問題を解決する方法 php7がTCPポートが機能していないことを検出した場合の問題を解決する方法 Mar 22, 2023 am 09:30 AM

php5 では、fsockopen() 関数を使用して TCP ポートを検出できます。この機能を使用して、ネットワーク接続を開き、ネットワーク通信を実行できます。ただし、php7 では、fsockopen() 関数でポートを開けない、サーバーに接続できないなどの問題が発生する可能性があります。この問題を解決するには、socket_create() 関数とsocket_connect() 関数を使用して TCP ポートを検出します。

php7.0にmongo拡張機能をインストールする方法 php7.0にmongo拡張機能をインストールする方法 Nov 21, 2022 am 10:25 AM

php7.0 に mongo 拡張機能をインストールする方法: 1. mongodb ユーザー グループとユーザーを作成します; 2. mongodb ソース コード パッケージをダウンロードし、ソース コード パッケージを "/usr/local/src/" ディレクトリに配置します; 3. 「src/」ディレクトリに入ります; 4. ソースコードパッケージを解凍します; 5. mongodb ファイルディレクトリを作成します; 6. ファイルを「mongodb/」ディレクトリにコピーします; 7. mongodb 設定ファイルを作成して設定を変更します。

php7.0 にプラグインがインストールされているのに、まだインストールされていないと表示される場合はどうすればよいですか? php7.0 にプラグインがインストールされているのに、まだインストールされていないと表示される場合はどうすればよいですか? Apr 02, 2024 pm 07:39 PM

PHP 7.0 でインストールされているプラ​​グインが表示されない問題を解決するには: プラグインの設定を確認し、プラグインを有効にします。 PHP を再起動して、構成の変更を適用します。プラグイン ファイルの権限をチェックして、それらが正しいことを確認します。不足している依存関係をインストールして、プラグインが適切に機能することを確認します。他のすべての手順が失敗した場合は、PHP を再構築します。他に考えられる原因としては、プラグインのバージョンに互換性がない、間違ったバージョンをロードしている、PHP 構成の問題などが挙げられます。

php8 と php7 ではどちらが優れていますか? php8 と php7 ではどちらが優れていますか? Nov 16, 2023 pm 03:09 PM

PHP7 と比較すると、PHP8 にはパフォーマンス、新機能と構文の改善、型システム、エラー処理と拡張機能の点でいくつかの利点と改善点があります。ただし、どのバージョンを使用するかは、特定のニーズとプロジェクトの状況によって異なります。詳細な紹介: 1. パフォーマンスの向上、PHP8 はコードの実行速度を向上できるジャストインタイム (JIT) コンパイラーを導入します; 2. 新機能と構文の改善、PHP8 は名前付きパラメーターとオプションのパラメーターの宣言をサポートします。関数の作成 呼び出しがより柔軟になり、匿名クラス、プロパティの型宣言などが導入されています。

PHP サーバー環境 FAQ ガイド: 一般的な問題を迅速に解決する PHP サーバー環境 FAQ ガイド: 一般的な問題を迅速に解決する Apr 09, 2024 pm 01:33 PM

PHP サーバー環境の一般的な解決策には、正しい PHP バージョンがインストールされていること、および関連ファイルがモジュール ディレクトリにコピーされていることを確認することが含まれます。 SELinux を一時的または永続的に無効にします。 PHP.ini をチェックして構成し、必要な拡張機能が追加され、正しく設定されていることを確認します。 PHP-FPM サービスを開始または再起動します。 DNS 設定に解決の問題がないか確認してください。

php7.0のインストールとデプロイ方法 php7.0のインストールとデプロイ方法 Nov 30, 2022 am 09:56 AM

php7.0 をインストールおよび展開する方法: 1. PHP 公式 Web サイトにアクセスして、ローカル システムに対応するインストール バージョンをダウンロードします; 2. ダウンロードした zip ファイルを指定したディレクトリに解凍します; 3. コマンド ライン ウィンドウを開いて、次のリンクに移動します。 「E:\php7」ディレクトリ 「php -v」コマンドを実行するだけです。

php7のダウンロードとインストール方法(チュートリアル共有) php7のダウンロードとインストール方法(チュートリアル共有) Mar 23, 2023 pm 02:11 PM

インターネット技術の発展に伴い、コンピュータープログラミング言語も継続的に開発および更新されています。 Web 開発の分野で広く使用されているプログラミング言語として、PHP は長年にわたって複数のバージョン更新が行われ、最新バージョンの PHP7 ではパフォーマンスと安定性が大幅に向上しました。 PHP プログラミング言語をより適切に適用するために、この記事では初心者向けに PHP7 のダウンロードとインストールのチュートリアルを紹介します。

一度記録し、strace を使用して、PHP がシステム リソースを過剰に占有する問題を診断します。 一度記録し、strace を使用して、PHP がシステム リソースを過剰に占有する問題を診断します。 May 03, 2024 pm 04:31 PM

ローカル環境:redhat6.7系。 nginx1.12.1、php7.1.0、コードは yii2 フレームワークの問題を使用しています。ローカル Web サイトは elasticsearch サービスを使用する必要があります。 PHP がローカル サーバー上に構築された elasticsearch を使用する場合、ローカル負荷は正常です。 AWS の elasticsearch サービスを使用すると、ローカル サーバーの負荷が高すぎることがよくあります。 nginx と php のログを確認して、例外が見つからないことを確認します。システム内の同時接続数も多くありません。そんなとき、上司から教えてもらったstrace診断ツールを思い出しました。デバッグプロセス: PHP サブプロセス idstrace- を検索します。

See all articles