(PHP 5 >= 5.1.0, PHP 7, PHP 8)
spl_autoload_functions —Return all registered __autoload() functions
This function has no parameters.
Anarray of all registered __autoload functions. If no function is registered, or the autoload queue is not activated, then the return value will be an empty array.
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);
});
functionunregister($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"
}