略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: spl_autoload_unregister

2024-11-14

spl_autoload_unregister

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

spl_autoload_unregister注销已注册的 __autoload() 函数

说明

spl_autoload_unregister(mixed $autoload_function): bool

从 autoload 自动装载函数队列中移除指定的函数。如果该函数队列处于激活状态,并且在给定函数注销后该队列变为空,则该函数队列将会变为无效。

如果该函数注销后使得自动装载函数队列无效,即使存在有 __autoload 函数它也不会自动激活。

参数

autoload_function

要注销的自动装载函数。

返回值

成功时返回 true, 或者在失败时返回 false

add a noteadd a note

User Contributed Notes 2 notes

up
14
edgarortegaramirez at example dot com
9 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.
12 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

官方地址:https://www.php.net/manual/en/function.spl-autoload-unregister.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3