この記事では、PHP の名前空間と自動ロードについて説明します。これには、必要な友人が参照できるように共有します。ちょうど考えていました。
私たちの PHP は 5.3 で名前空間の概念を導入したことが判明しました (これが、ほとんどのフレームワークが 5.3 より前のバージョンをサポートしない理由の 1 つです)spl_autoload_register
日常生活と同じように、同じ名前の人がたくさんいます。これらの人々をどうやって見分けるのでしょうか?次に、ロゴをいくつか追加する必要があります。
「名前の衝突」という恥ずかしさを心配する必要がないように、職場をロゴとして使用するのが良さそうです。 名前空間の分類 [ ] 完全修飾名前空間new 百度\李彦宏(); // 限定类名new \百度\李彦宏(); // 完全限定类名
namespace 谷歌;new 百度\李彦宏(); // 谷歌\百度\李彦宏(实际结果)new \百度\李彦宏(); // 百度\李彦宏(实际结果)
/* 导入命名空间 */use 百度\李彦宏;new 李彦宏(); // 百度\李彦宏(实际结果)/* 设置别名 */use 百度\李彦宏 AS CEO;new CEO(); // 百度\李彦宏(实际结果)/* 任何情况 */new \百度\李彦宏();// 百度\李彦宏(实际结果)
__autoload() について説明します
__autoload 関数はいつ呼び出されますか? php ファイル内で new キーワードを使用してオブジェクトをインスタンス化する場合、この php ファイル内でクラスが定義されていない場合、__autoload 関数がトリガーされます。このとき、クラスを定義する php ファイルを導入できます。 , インスタンス化は成功しました。 (注: インスタンス化する必要があるオブジェクトがこのファイル内でクラスの定義を見つけた場合、__autoload 関数はトリガーされません)
__autoload と spl_autoload_register の両方がspl_autoload_register が使用される場合、spl_autoload_register が優先されます
関連する推奨事項:php ダウンロード機能
以上がPHP 名前空間と自動読み込みの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。