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

来源:4-8 【Container容器类剖析】获取容器里面的实例分析

qq_糊涂仙_0

2019-11-28

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

写回答

4回答

qq_糊涂仙_0

提问者

2020-04-21

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

1
0

qq_回不去的昨天_0

2020-01-31

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

1
0

慕码人4571193

2020-01-07

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

1
3
qq_糊涂仙_0
回复
慕码人4571193
不是很明白你的意思,退出是指退出哪里?退出的时候会调用log吗
2020-01-13
共3条回复

研究猿

2020-01-08

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

0
0

BAT资深工程师解析Tp5+Tp6底层源码

一门课掌握主流Tp5+最新Tp6框架底层,拥抱新潮流

686 学习 · 145 问题

查看课程