(PHP 5 >= 5.1.0, PHP 7, PHP 8)
spl_autoload_functions — Return all registered __autoload() functions
This function has no parameters.
An array 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);
});
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"
}