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