ホームページ  >  記事  >  php教程  >  PHPクラスの自動ロード機構

PHPクラスの自動ロード機構

WBOY
WBOYオリジナル
2016-06-16 08:41:11932ブラウズ

PHPクラスの自動ロード機構 spl_autoload_register()

バージョン

PHP5.1.2 より前では、__autoload() を使用してください。
PHP5.1.2以降ではspl_autoload_register()を使用してください。
この記事では、デモのために spl_autoload_register() を使用します。

ディレクトリが含まれます

アプリケーション/コントローラー
アプリケーション/モデル
アプリケーション/ライブラリ

コード実装//インクルードディレクトリ<code class="prettyprint linenums lang-php">//包含目录<br> $include_dir = [<br>   'application/controllers',<br>   'application/models',<br>   'application/libs'<br> ]<br> //设置包含目录<br> set_include_path(get_include_path() . PATH_SEPARATOR .implode(PATH_SEPARATOR, $include_dir));<br> /**<br>  * 自动加载类库<br>  * @param string $class 类名<br>  */<br> function auto_load_class($class = '')<br> {<br>     //在这可以进行扩展,默认是将类名转成小写。<br>     //可扩展方向:文件夹_类名 <br>     $path = strtolower($class) . '.class.php';<br>     include_once($path);<br> }<br> spl_autoload_register('auto_load_class'); //spl注册自动加载<br> $obj = new 类名(); //实例化<br> $obj->方法名();<br> <br> //当指定了多个目录且有相同名称的文件时,以排位居前目录下的为准。 $include_dir = [
'アプリケーション/コントローラー',
'アプリケーション/モデル',PHPクラスの自動ロード機構 'アプリケーション/ライブラリ'

]

//インクルードディレクトリを設定します

set_include_path(get_include_path() . PATH_SEPARATOR .implode(PATH_SEPARATOR, $include_dir)); /** * クラスライブラリを自動的にロードします * @param string $class クラス名 ​*/ 関数 auto_load_class($class = '') { //ここで拡張を行うことができます。デフォルトでは、クラス名が小文字に変換されます。 //拡張可能な方向: フォルダークラス名 $path = strto lower($class) '.class.php'; Include_once($path); } spl_autoload_register('auto_load_class'); //spl 登録は自動的にロードされます $obj = 新しいクラス名() //インスタンス化; $obj->メソッド名(); //複数のディレクトリが指定され、同名のファイルが存在する場合は、最上位のディレクトリにあるファイルが優先されます。 さらに【辛口な情報共有】を知りたい方は、お早めにPHPエンジニアのサブスクリプションアカウントをフォローしてください。 広告: 本当に無料、ドメイン名 + 仮想マシン + 企業メール = 0 元
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。