• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • spl_autoload_functions()

    (PHP 5 >= 5.1.0, PHP 7)

    返回所有已注册的__autoload()函数。

    说明

    spl_autoload_functions(void): array

    获取所有已注册的 __autoload()函数。

    参数

    此函数没有参数。

    返回值

    包含所有已注册的__autoload函数的数组(array)。如果自动装载函数队列未激活,则返回FALSE。如果没有已注册的函数,则返回一个空数组。

    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"
    }