$functions = spl_autoload_functions();
foreach($functions as $function) {
spl_autoload_unregister($function);
}
A nice way to unregister all functions.
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
spl_autoload_unregister — 指定した関数の、__autoload() の実装としての登録を解除する
spl が提供する __autoload キューから、関数を削除します。 キューがアクティブであり、かつこの関数の削除後にキューが空になった場合は キューが非アクティブ化されます。
この関数の結果として autoload キューが非アクティブになったとした場合に、 既存の __autoload 関数が再アクティブ化されることはありません。
callback
登録を解除したい autoload 関数。
成功した場合に 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