ホームページ  >  記事  >  PHPフレームワーク  >  spl_autoload_register の過去と現在について話しましょう

spl_autoload_register の過去と現在について話しましょう

咔咔
咔咔オリジナル
2020-09-01 00:10:071496ブラウズ
#❝この記事では、spl_autoload_register について説明します。

序文

##❝
カカはロードマップをまとめ、面接ガイドの作成に着手し、私が書いているこのロードマップに従う準備をしました。この記事では、後から追加されていないナレッジ ポイントをいくつか追加しています。また、パートナー全員が追加に協力してくれることを願っています。コメント エリアでお会いしましょう!

spl_autoload_register の過去と現在について話しましょう
ここに画像の説明を挿入

私が PHP に触れる前、フレームワークを使用しなかった前は、私の友人のほとんどは include と require、そしてもちろん include_once と require_once を使用していたと思います。

これら 2 つの違いをまだ覚えていますか?

Include はエラーが報告されたときにのみ警告を発しますが、require はスクリプトを直接停止します。

名前空間の概念は PHP5.3 で導入されました。このため、ある寄稿者は 11 年前の PHP ドキュメントでこう述べています、名前空間と呼ばれるものを推奨しないようにするためにこのベンチマークを作成しました「いいけど、遅い」は後ほど

「今後、良いとは言えても非常に遅いものを推奨しないことを確認するために、このテストを行いました」と訳します。

テストでは、10 個のフォルダーを定義し、各フォルダーには 10 個のサブフォルダーがあり、各サブフォルダーには 10 個のクラスがあり、autoload と spl_autoload を使用して比較します。平均実行時間は 50 ミリ秒長くなります。

これは _autoload() を指しますが、このメソッドは最終的に PHP7.2 で廃止される予定です。

効率の問題に加えて、_autoload メソッドが最終的に放棄された別の理由があります。

spl_autoload_register 必要に応じて複数のレジスタを記述することができ、読み込み順序はキュー モード (先入れ先出し) になります。

autoload はグローバル関数であるため、一度しか定義できません。複数回定義するとエラーが報告されます。複数のフレームワークを使用してプロジェクトを実装すると、この問題が発生します。

2. spl_autoload_register の簡単な使い方

この関数にはパラメータが 3 つだけあり、最初のパラメータは自動的にロードされます。 、2 番目のパラメーターは、自動的に登録された関数が失敗したときに例外をスローするかどうか、3 番目のパラメーターは関数をキューの末尾ではなくキューの先頭に追加することです。

上記はすべて true に基づいて定義されています。

say と user の 2 つのファイルを定義します

say ファイルはクラス Say を宣言し、メソッド hello を設定します

spl_autoload_register の過去と現在について話しましょう
ここに画像の説明を挿入

ユーザー ファイルに到達したら、最初に自動ロード メソッドを定義し、次に spl_autoload_register を使用してregister

spl_autoload_register の過去と現在について話しましょう#印刷されたデータ結果spl_autoload_register の過去と現在について話しましょう

学習の継続、ブログの継続、共有の継続は、Kaka が常に守ってきたことです。カカの巨大なインターネット上の記事が少しでも役立つことを願っています。

以上がspl_autoload_register の過去と現在について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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