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
spl_autoload_unregister
(PHP 5 >= 5.1.2)
spl_autoload_unregister — از حالت ثبتنام خارج کردن توابع داده شده به عنوان پیادهسازی __autoload()
Description
از حالت ثبت نام خارج کردن تابع در پشته __autoload فراهم شده spl. اگر پس از خارج شدن از جالت ثبت نام پشته خالی و فعال باشد آن را غیر فعال میکند.
هنگامی که این تابع موجب فعال شدن پشته autoload میشود تابع موحود __autoload دوباره فعال نخواهد شد.
Parameters
- autoload_function
-
تابع autoload برای از حالت ثبتنام خارج کردن.
Return Values
Returns TRUE on success or FALSE on failure.
Julien B. ¶
3 years ago
edgarortegaramirez at example dot com ¶
9 hours ago
$functions = spl_autoload_functions();
foreach($functions as $function) {
spl_autoload_unregister($function);
}
A nice way to unregister all functions.
