PHP Doku:: Unregister given function as __autoload() implementation - function.spl-autoload-unregister.html

Verlauf / Chronik / History: (42) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzSonstige GrunderweiterungenStandard PHP Library (SPL)SPL Funktionenspl_autoload_unregister

Ein Service von Reinhard Neidl - Webprogrammierung.

SPL Funktionen

<<spl_autoload_register

spl_autoload>>

spl_autoload_unregister

(PHP 5 >= 5.1.2)

spl_autoload_unregisterUnregister given function as __autoload() implementation

Beschreibung

bool spl_autoload_unregister ( mixed $autoload_function )

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 deactivated, any __autoload function that previously existed will not be reactivated.

Parameter-Liste

autoload_function

The autoload function being unregistered.

Rückgabewerte

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.


Ein BenutzerBeitrag:
- Beiträge aktualisieren...
Julien B.
7.07.2009 18:31
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



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)