为什么会打印2次?咨询下老师
来源:4-8 【Container容器类剖析】获取容器里面的实例分析
研究猿
2020-02-05
写回答
1回答
-
天经地义
2020-03-30
这个get的作用是获取容器中的对象实例,你在这里打exit,发现打印了两次123
第一个123是因为你入口文件index.php的最后一行“Container::get('app')->run()->send();”中的get('app'),然后因为前面的代码已经注册号很多服务了,报错错误处理,和错误写log,你在这里exit强制中止会触发错误写log,所以第二个123是“thinkphp/library/think/Error.php”的94行“Container::get('log')->save();”中的get('log')触发获取容器中log对象写日志,所以会打印两个,
你可以使用debug_backtrace()函数打印一些相关信息,就可以看到方法的调用来源之类的信息,如下
312021-07-15
相似问题