本文共 937 字,大约阅读时间需要 3 分钟。
尝试加载未定义的类,PHP7.2弃用此函数。假定同一目录下有foo.php和test.php两个文件。
PHP5.3以前__autoload函数抛出的异常不能被catch语句块捕获并会导致一个致命错误。PHP5.3起能够thrown自定义的异常,随后自定义异常类即可使用。__autoload函数可以递归的自动加载自定义异常类。
//foo.php "; }}class Bar{ function __construct(){ echo __CLASS__ ." in ". __FILE__ .""; }}interface ITest{ public function test();}?>
//test.php
要注意的是如果test.php中最后两行顺序颠倒的话会产生致命错误,因为Bar定义在foo.php中,无法通过__autoload加载。
将函数注册到SPL的__autoload函数队列中。如果该队列中的函数尚未激活,则激活它们。spl_autoload_register创建了一个autoload函数的队列,按定义时的顺序逐个执行。而__autoload函数只可以定义一次。如果程序中已经实现了__autoload函数,必须显式的将其注册到__autoload函数队列中。因为spl_autoload_register函数会将Zend Engine中的__autoload函数取代为spl_autoload或spl_autoload_call。
最多接受三个参数,第一个参数为要注册的自动装载函数,默认为spl_autoload();第二个参数为要注册的自动装载函数无法成功注册时,spl_autoload_register是否抛出异常,默认为true;第三个参数为PHP5.3新增的标识参数,表示要注册的自动装载函数是否添加到函数队列之首,默认为false。注册成功返回true,失败返回false。
PHP5.3起,还支持匿名函数和命名空间。
//test2.php "; }}$t=new MyTest();$t->test();?>
//test3.php
转载地址:http://nykkb.baihongyu.com/