问答详情
源自:5-4 Laravel中的错误与日志

请问在核心文件\Foundation\Application.php中$this怎么可以当数组用和对象用?

请问在核心laravel\framework\src\Illuminate\Foundation\Application.php文件中$this怎么可以当数组用和对象用?
58afed4d00019a3c08810291.jpg

提问者:慕粉080824269 2017-02-24 16:24

个回答

  • pardon110
    2017-09-04 20:20:52
    已采纳

    php 基础不牢啊,这是因为它的老爸实现了php内置接口ArrayAccess,该接口有以下四个方法offsetExists,offsetGet,offsetSet,offsetUnset  你可以将它当作魔术方法,简单点说,即实现了该接口的类,当你以数组的形式访问对象,会触发offsetGet方法并执行. 它你找application爸container,其内有对应实现方法如下:

    /**
     * Get the value at a given offset.
     *
     * @param  string  $key
     * @return mixed
     */
    public function offsetGet($key)
    {
        return $this->make($key);
    }

    看明白了?

    $this['events']   即 $this->make('events')   亦解析以events为别名类,得到实例

    详情参阅

  • wsure007
    2017-03-20 16:41:38

    $this 的含义是表示实例化后的具体对象

    我们一般是先声明一个类,然后用这个类去实例化对象!