通过调试$x = app()->resolved;
中的laravel,我得到了这个神奇的方法
public function __get($key)
{
return $this[$key];
}
Illuminate\Container\Container
中的
我想了解这一点,但我无法弄清楚这是做什么的。
什么是return $this[$key];
?像这样的$this[$key]
是键控数组
我了解$this->xxx
正在获取this
个实例的$ xxx属性。
但是$this[$key]
是什么?
为什么在代码中执行的下一行是
public function offsetGet($key)
{
return $this->make($key);
}
即使现在正在进行调整并思考
,也无法理解并理解答案 0 :(得分:2)
与[]
ArrayAccess
的类都可以像数组一样运行
假设:
class MyArrayAccessibleClass implements \ArrayAccess { }
$class = new MyArrayAccessibleClass();
以下对是等价的:
$variable = $class["index"]
$variable = $class->offsetGet("index");
$class["index"] = $value;
$class->offsetSet("index",$value);
isset($class["index"]);
$class->offsetExists("index");
unset($class["index"]);
$class->offsetUnset("index");
特别是laravel Application
扩展Container
实现ArrayAccess