ホームページ >バックエンド開発 >PHPチュートリアル >laravel-php 多くのフレームワークは名前空間を通じて関連クラスを直接インポートしますが、実際には名前空間にはその機能がありません。説明する
多くの PHP フレームワークは、名前空間を通じて関連クラスを直接インポートしますが、実際には名前空間にはその機能がありません。説明してください
require_once include_once()...を使用してクラスをインポートします...
しかし、thinkphp、laravelなどの多くのフレームワークは、これらのメソッドを使用せず、名前空間を使用します
何が起こっているのですか?
多くの PHP フレームワークは、名前空間を通じて関連クラスを直接インポートしますが、実際には名前空間にはその機能がありません。説明してください
require_once include_once()...を使用してクラスをインポートします...
しかし、thinkphp、laravelなどの多くのフレームワークは、これらのメソッドを使用せず、名前空間を使用します
何が起こっているのですか?
他の 2 つの回答ではいくつかの点について言及していますが、十分ではありません
まずは自動読み込みの機能です
自動ロードは PHP5 で導入されました。spl_autoload_register
注册一个自动加载函数, 当PHP在找一个内存中还不存在的类时, 就会依次调用spl_autoload_register
登録された自動ロード関数を使用してクラスを検索できます
もう 1 つの方法としては、__autoload
関数をオーバーライドする方法がありますが、この方法では自動ロード関数を 1 つしか使用できません。他のライブラリも使用すると問題が発生する可能性があるため、お勧めできません。
注意すべき点は、自動読み込み機能は名前空間とは何の関係もありませんが、名前空間と一緒に使用することが推奨されていますが、一部の古い PHP コードでは、実際には
のアンダースコアを使用することで名前空間の効果が実現されていることがわかります。
_
名前空間の使用状況を確認できます use はクラスを導入するので、require_once include_once() を使う必要はありません...
実際には、 use は関数を導入するのではなく、プログラムが自動的に __autoload メソッドをロードし、関連するクラスを導入します。