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

    (PHP 5 >= 5.1.0, PHP 7)

    注销已注册的__autoload()函数

    说明

    spl_autoload_unregister(mixed $autoload_function): bool

    从spl提供的自动装载函数队列中注销某一函数。如果该函数队列处于激活状态,并且在给定函数注销后该队列变为空,则该函数队列将会变为无效。

    如果该函数注销后使得自动装载函数队列无效,即使存在有__autoload函数它也不会自动激活。

    参数

    $autoload_function

    要注销的自动装载函数。

    返回值

    成功时返回TRUE,或者在失败时返回FALSE

    $functions = spl_autoload_functions();
      foreach($functions as $function) {
        spl_autoload_unregister($function);
      }
    A nice way to unregister all functions.
    Restore the binding to __autoload after using a spl_autoload_register() call
    <?php 
    spl_autoload_register(array('Doctrine', 'autoload'));
    // some process
    spl_autoload_unregister(array('Doctrine', 'autoload'));
    // but now the old __autoload is not triggered anymore 
    // you need to use :
    spl_autoload_register('__autoload');
    // but this will throw a LogicExeption if the __autoload 
    // function is not defined yet, so use:
    function autoload__ ( $className ) {
      if ( function_exists('__autoload'))
        __autoload($className);
    }
    spl_autoload_register('autoload__');
    ?>
    So you can define your old __autoload in another file for example
    May helps some folks in this catch 22