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 — Unregister given function as __autoload() implementation
Описание
Unregister a function from the spl provided __autoload stack. If the stack is activated and empty after unregistering the given function then it will be deactivated.
When this function results in the autoload stack being activated an existing __autoload function will not be reactivated.
Параметри
- autoload_function
-
The autoload function being unregistered.
Връщани стойности
Връща TRUE при успех или FALSE при неуспех.
Julien B. ¶
3 years ago
edgarortegaramirez at example dot com ¶
5 days ago
$functions = spl_autoload_functions();
foreach($functions as $function) {
spl_autoload_unregister($function);
}
A nice way to unregister all functions.
