laravel - php 静态调用非静态方法是如何做到的?
本文介绍了laravel - php 静态调用非静态方法是如何做到的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
larave 项目中静态调用
facade
Admin类中的title方法是非静态的
这个是如何实现的?
解决方案
归根结底是通过 魔术方法 __callStatic
实现的
Illuminate\Support\Facades\Facade
代码最下方
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);
}
关于 Facade
是 Lavavel
比较重要的特性之一,可以详细了解下它的实现。
这篇关于laravel - php 静态调用非静态方法是如何做到的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文