PHP自动加载SPL的四种处理方式
Posted 浮尘
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP自动加载SPL的四种处理方式相关的知识,希望对你有一定的参考价值。
libs目录下有3个类文件:
Test.class.php
<?php class Test { public function __construct() { echo "Loading Test.class.php <br>"; } }
Test.php
<?php class Test { public function __construct() { echo "Loading Test.php <br>"; } }
User.php
<?php class User { public function __construct() { echo "Loading User.php <br>"; } }
【方法1】
<?php //可以传入多个参数,逗号分隔,多个相同的类名最先找到的最先匹配 spl_autoload_extensions(\'.class.php,.php\'); //设置autoload寻找php定义的类文件的目录,多个目录用PATH_SEPARATOR常量 分隔 $path = get_include_path() . PATH_SEPARATOR . "libs/"; set_include_path($path); //autoload注册 spl_autoload_register(); new Test(); new User();
【方法2】
<?php //定义__autoload函数,页面运行时会先执行这里面的代码 function __autoload($class_name) { require_once "libs/" . $class_name . ".php"; echo "已加载类 " . $class_name . "<br>"; } new Test(); new User();
【方法3】
<?php //自定义的加载类 function myLoader($class_name) { require_once "libs/" . $class_name . ".php"; echo "已加载类 " . $class_name . "<br>"; } //将自定义的类名载入 spl_autoload_register(\'myLoader\'); new Test(); new User();
【方法4】
<?php //自定义的加载类 function myLoader($class_name) { set_include_path("libs/"); spl_autoload($class_name); echo "已加载类 " . $class_name . "<br>"; } //将自定义的类名载入 spl_autoload_register(\'myLoader\'); new Test(); new User();
以上四种方法都可以自动加载libs目录下面的类,运行结果如下:
【总结】
以上是关于PHP自动加载SPL的四种处理方式的主要内容,如果未能解决你的问题,请参考以下文章
php中自动加载类_autoload()和spl_autoload_register()实例详解
php命名空间+spl_autoload_register实现类的自动加载