请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

make方法中var_dump的时候为什么会打印出“log”

图片描述
如图,打印结果为 string(3) “app” string(3) “log"
入口文件中传参"app”,这里打印出"app" 然后退出,不明白为什么会打印“log”

正在回答 回答被采纳积分+3

4回答

提问者 qq_糊涂仙_0 2020-04-21 11:49:42

有问题要先看官方文档,尽管调用了 exit(), Shutdown函数总是会被执行,在base.php执行的Error::register();方法内有这样一行代码 register_shutdown_function([__CLASS__, 'appShutdown']); 就是定义php终止执行是要调用appShutdown方法,在该方法内执行 Container::get('log')->save();

1 回复 有任何疑惑可以回复我~
qq_回不去的昨天_0 2020-01-31 23:58:59

同学你好,base.php 调用Error::register方法,里面注册了当进程执行结束后调用appShutdown方法,方法最下面调用container::get('log')的。

1 回复 有任何疑惑可以回复我~
慕码人4571193 2020-01-07 10:58:26

同学你好,这个make方法是容器获取类的实例的方法,入口文件中Container::get('app')走到这里  相当于$abstract参数 等于 app;  通过下面的三木运算 $this->name中刚开始并没有这个app ,所有$abstract的值 就是app了。

1 回复 有任何疑惑可以回复我~
  • 提问者 qq_糊涂仙_0 #1
    这个我理解,但是我在后面使用exit退出了,它为什么还打印了"log"
    回复 有任何疑惑可以回复我~ 2020-01-07 11:06:16
  • 慕码人4571193 回复 提问者 qq_糊涂仙_0 #2
    额,你打印不是在退出前打印的嘛?
    回复 有任何疑惑可以回复我~ 2020-01-07 11:19:30
  • 提问者 qq_糊涂仙_0 回复 慕码人4571193 #3
    不是很明白你的意思,退出是指退出哪里?退出的时候会调用log吗
    回复 有任何疑惑可以回复我~ 2020-01-13 10:25:53
研究猿 2020-01-08 08:52:49

有明白人回答这个问题吗?

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信