PHP Conference Japan 2024

spl_autoload_functions

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

spl_autoload_functions返回所有已註冊的 __autoload() 函式

說明

spl_autoload_functions(): 陣列

取得所有已註冊的 __autoload() 函式。

參數

此函式沒有參數。

傳回值

一個包含所有已註冊 __autoload 函式的 陣列。如果沒有註冊任何函式,或自動載入佇列未啟用,則傳回值將是一個空陣列。

更新日誌

版本 說明
8.0.0 傳回值已更新為始終為 陣列;先前如果自動載入佇列未啟用,此函式會傳回 false
新增筆記

使用者貢獻的筆記 2 則筆記

dantedantas at gmail dot com
7 年前
如果您使用匿名函式,它將會返回預期的物件。

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()) 返回

array(1) {
[0]=>
object(Closure)#1 (1) {
["parameter"]=>
array(1) {
["$myclass"]=>
string(10) "<required>"
}
}
}
124307954 at qq dot com
5 年前
<?php
spl_autoload_register
(function ($name) {
echo
"想要載入 $name。\n";

});

spl_autoload_register(function($className) {
var_dump($className);
});

function
unregister($className) {
var_dump($className.' 我會是第一個');
}

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