为了账号安全,请及时绑定邮箱和手机立即绑定

为什么要使用spl_autoload_unregister

为什么要使用spl_autoload_unregister

PHP
蓝山帝景 2019-03-10 13:08:25
请问: 最近学习 laravel 源码,发现他的 autoload_real.php 里面有一段: spl_autoload_register(array('ComposerAutoloaderInit290bf49d84893e46e6f7e0573b89e863', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); spl_autoload_unregister(array('ComposerAutoloaderInit290bf49d84893e46e6f7e0573b89e863', 'loadClassLoader')); 为什么要使用spl_autoload_unregister? 这里面有什么特别的原因么? //spl_autoload_unregister: //从spl提供的自动装载函数栈中注销某一函数。如果该函数栈处于激活状态,并且在给定函数注销后该栈变为空,则该函数栈将会变为无效。 //如果该函数注销后使得自动装载函数栈无效,即使存在有__autoload函数它也不会自动激活。 参数 //要注销的自动装载函数。 //返回值 //如果成功则返回 TRUE,失败则返回 FALSE。 if ($enabled === true) { spl_autoload_register(array($class, 'autoload')); } else { spl_autoload_unregister(array($class, 'autoload')); } 谢谢。
查看完整描述

2 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

首先用spl_autoload_register注册了loadClassLoader,目的在于实现ComposerAutoloadClassLoader的自动加载,在self::$loader = $loader = new ComposerAutoloadClassLoader();执行完毕,ClassLoader加载完成之后,loadClassLoader就没必要存在了,spl_autoload_unregister卸载

查看完整回答
反对 回复 2019-03-18
?
弑天下

TA贡献1818条经验 获得超8个赞

ClassLoader类加载完成并赋予$loader之后,loadClassLoader已经加载完毕,需要注销

查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 496 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信