php - laravel 5 中 $this->app 是哪里赋值的
怪我咯
怪我咯 2017-04-10 16:11:55
[PHP讨论组]

为什么在 instances 方法中对属性 instances 数组赋值后。
$this->app 便有了值。

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(1)
ringa_lee

还是早晨脑子清醒,把 Container 类看了一遍找到 $this->app 咋来的了。
Container 类实现了 ArrayAccess 接口,关于 ArrayAccess 接口的介绍可以参考官方文档

现在很多moden php 框架都使用了这个东西。

当访问 $this->app 的时候默认调用的 Container 类中的 offsetGet 方法,然后 offsetGet 调用了 Container 类的 make 方法这个方法是 根据传入的类型从Container 中获取类型实例的方法。看到 make 方法的代码

if (isset($this->instances[$abstract])) {
            return $this->instances[$abstract];
        }

瞬间就明白了 $this->app 的来源~

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号