我有点困惑。我的代码看起来像这样:
var_dump(class_exists ("blah\myclass"));
include_once("Autoloader.php"); //this file creates the function, and does spl_autoload_register('Autoloader::loader');
var_dump(class_exists ("blah\myclass")); //line3
spl_autoload_unregister('Autoloader::loader');
var_dump(class_exists ("blah\myclass"));
我预计输出会显示:
false
,true
,false
。
但我得到了:
false
,true
,true
。
起初,我想也许我没有正确注销,但如果我拿出第3行,我会得到我期望的结果:
false
,false
我正在努力了解发生了什么。 PHP是否在第一次实例化类时缓存了类定义?如果是这样,这是否意味着spl_autoload_unregister
在第一次找到课程后不再有用?
感谢您的任何澄清。