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 个注释

edgarortegaramirez at example dot com
11 年前
$functions = spl_autoload_functions();
foreach($functions as $function) {
spl_autoload_unregister($function);
}

注销所有函数的一种好方法。
Julien B.
15 年前
在使用 spl_autoload_register() 调用后恢复到 __autoload 的绑定

<?php
spl_autoload_register
(array('Doctrine', 'autoload'));

// 一些过程

spl_autoload_unregister(array('Doctrine', 'autoload'));

// 但现在旧的 __autoload 不会再被触发了
// 你需要使用:
spl_autoload_register('__autoload');

// 但如果 __autoload 函数尚未定义,这将抛出一个 LogicExeption
// 函数,因此使用:
function autoload__ ( $className ) {
if (
function_exists('__autoload'))
__autoload($className);
}

spl_autoload_register('autoload__');

?>

因此,您可以将旧的 __autoload 定义在另一个文件中,例如

可能有助于某些人在这种进退两难的境地中
To Top