laravel - php 靜態呼叫非靜態方法是如何做到的?
黄舟
黄舟 2017-07-05 10:02:01
0
1
1002

larave 專案中靜態呼叫

#facade

Admin類別中的title方法是非靜態的

這個是如何實現的?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回覆(1)
学习ing

歸根結底是透過 魔術方法 __callStatic 實現的

IlluminateSupportFacadesFacade 程式碼最下方

https://github.com/illuminate...

 /**
     * Handle dynamic, static calls to the object.
     *
     * @param  string  $method
     * @param  array   $args
     * @return mixed
     *
     * @throws \RuntimeException
     */
    public static function __callStatic($method, $args)
    {
        $instance = static::getFacadeRoot();
        if (! $instance) {
            throw new RuntimeException('A facade root has not been set.');
        }
        return $instance->$method(...$args);
    }

關於 FacadeLavavel 比較重要的特性之一,可以詳細了解下它的實現。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板