PHP 8.4.0 RC2 available for testing

spl_autoload_functions

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

spl_autoload_functions Возвращает список зарегистрированных функций автозагрузки классов

Описание

spl_autoload_functions(): array

Функция получает список зарегистрированных функций автозагрузки классов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция возвращает массив (array) функций, которые зарегистрировали в очереди __autoload. Функция возвращает пустой массив, если ни одну функцию не зарегистрировали или библиотека SPL не активировала очередь автозагрузки.

Список изменений

Версия Описание
8.0.0 Значение, которое возвращает функция, обновили, чтобы функция возвращала только массив (array); раньше функция возвращала false, если библиотека SPL ещё не активировала очередь автозагрузки.
add a note

User Contributed Notes 2 notes

up
7
dantedantas at gmail dot com
7 years ago
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>"
}
}
}
up
4
124307954 at qq dot com
5 years ago
<?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"
}
To Top