PHP 8.4.2 Released!

spl_autoload_unregister

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

spl_autoload_unregister Отменяет регистрацию функции как реализации метода функций __autoload()

Описание

spl_autoload_unregister(callable $callback): bool

Функция удаляет функцию из очереди автозагрузки. Если очередь была активна и после удаления функции окажется пустой, очередь будет автоматически деактивирована.

Когда эта функция приводит к деактивации очереди, любая функция очереди __autoload, которая ранее существовала, не будет повторно активирована.

Список параметров

callback

Функция автозагрузки, регистрацию которой требуется снять.

Возвращаемые значения

Функция возвращает true, если выполнилась успешно, или false, если возникла ошибка.

Добавить

Примечания пользователей 2 notes

up
14
edgarortegaramirez at example dot com
11 years ago
$functions = spl_autoload_functions();
foreach($functions as $function) {
spl_autoload_unregister($function);
}

A nice way to unregister all functions.
up
2
Julien B.
15 years ago
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
To Top