©
本文檔使用 php中文網手册 發布
(PHP 5 >= 5.1.2)
spl_autoload_unregister — 注销已注册的__autoload()函数
$autoload_function
)从spl提供的自动装载函数栈中注销某一函数。如果该函数栈处于激活状态,并且在给定函数注销后该栈变为空,则该函数栈将会变为无效。
如果该函数注销后使得自动装载函数栈无效,即使存在有__autoload函数它也不会自动激活。
autoload_function
要注销的自动装载函数。
成功时返回 TRUE
, 或者在失败时返回 FALSE
。
[#1] edgarortegaramirez at example dot com [2013-05-18 19:13:55]
$functions = spl_autoload_functions();
foreach($functions as $function) {
spl_autoload_unregister($function);
}
A nice way to unregister all functions.
[#2] Julien B. [2009-07-07 09:31:45]
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