spl_autoload_functions()
(PHP 5 >= 5.1.0, PHP 7)
返回所有已注册的__autoload()函数。
说明
spl_autoload_functions(void): array
获取所有已注册的 __autoload()函数。
参数
此函数没有参数。
返回值
包含所有已注册的__autoload函数的数组(array)。如果自动装载函数队列未激活,则返回FALSE
。如果没有已注册的函数,则返回一个空数组。
If you use an anonymous function, it will return the object that are expected. spl_autoload_register(function ($myclass){ $keyclass = substr($myclass, 0, 1); switch ($keyclass) { case 'c': if (file_exists("class".DIRECTORY_SEPARATOR.$myclass.".php") === true) require_once ("class".DIRECTORY_SEPARATOR.$myclass.".php"); break; case 'i': if (file_exists("interface".DIRECTORY_SEPARATOR.$myclass.".php") === true) require_once ("interface".DIRECTORY_SEPARATOR.$myclass.".php"); break; case 'a': if (file_exists("abstract".DIRECTORY_SEPARATOR.$myclass.".php") === true) require_once ("abstract".DIRECTORY_SEPARATOR.$myclass.".php"); break; default: if (file_exists($myclass.".php") === true) require_once ($myclass.".php"); } /******************************/ var_dump(spl_autoload_functions()) return: array(1) { [0]=> object(Closure)#1 (1) { ["parameter"]=> array(1) { ["$myclass"]=> string(10) "<required>" } } }
<?php spl_autoload_register(function ($name) { echo "Want to load $name.\n"; }); spl_autoload_register(function($className) { var_dump($className); }); function unregister($className) { var_dump($className.' i will be the first'); } spl_autoload_register('unregister'); var_dump(spl_autoload_functions()); =================== array(3) { [0]=> object(Closure)#1 (1) { ["parameter"]=> array(1) { ["$name"]=> string(10) "<required>" } } [1]=> object(Closure)#2 (1) { ["parameter"]=> array(1) { ["$className"]=> string(10) "<required>" } } [2]=> string(10) "unregister" }