spl_autoload_functions

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

spl_autoload_functionsすべての登録済み __autoload() 関数を返す

説明

spl_autoload_functions(): array

すべての登録済み __autoload() 関数を取得します。

パラメータ

この関数にはパラメータはありません。

戻り値

関数が何も登録されていなかったり、 autoload キューが有効になっていない場合は、 空の配列が返されます。

変更履歴

バージョン 説明
8.0.0 戻り値は常に配列になりました。 これより前のバージョンでは、 autoload キューが有効になっていない場合に false を返していました。
add a note 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
5
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