我在Laravel中找到了一个代码块,如下所示:
/**
* Register a "before" application filter.
*
* @param \Closure|string $callback
* @return void
*/
public function before($callback)
{
return $this['router']->before($callback);
}
$this['router']
在这里意味着什么?任何人都可以解释$this['xx']
表格吗?它是一个数组吗?
答案 0 :(得分:4)
您的变量被称为$this
这一事实意味着它不能是一个普通的数组 - 该变量名是为一个类的当前实例保留的。
使用方括号访问对象是该类实现ArrayAccess
接口的标志 - 也就是说,可以使用通常为基本数组保留的运算符来访问它。
使用方括号表示法从实现ArrayAccess
的类中检索值将调用类的offsetGet
方法,并将提供的键作为$offset
参数。最常见的用法是允许访问类的成员变量,但类本身可以选择在此方法中执行任何操作。
在您的情况下,我认为您正在查看Laravel应用程序类,这将导致从依赖项注入容器返回 router 项。
答案 1 :(得分:2)
$this['router']
对laravel服务容器中的路由器服务的引用。
服务容器(或依赖注入容器)只是一个PHP对象,它管理服务(即对象)的实例化。
答案 2 :(得分:1)
它只是意味着它是一个数组。您可以使用方括号,使用键(可以是名称(字符串,用引号括起来)或数字)来标识数组中的正确值。
在您的代码中,$this['router']
指的是您正在查看的类中包含的数组,这是用于选择所需内容的标识符,router
是关键字。