具体来说,我正在从下面看这个位$this->instances[$abstract]
,但我不确定isset($this->instances[$abstract]
如何被评估为true,即使索引似乎不存在。< / p>
Illuminate\Container\Container
:
public function make($abstract, array $parameters = [])
{
$abstract = $this->getAlias($this->normalize($abstract));
if (isset($this->instances[$abstract])) {
return $this->instances[$abstract]; // <-- this!
}
...
}
数组属性$instances
没有设置$abstract
索引,但它仍然返回适当的服务。就我而言,$abstract
为cache
,返回的对象为Illuminate\Cache\CacheManager
。这有什么神奇之处?
下面Cache::has($key)
来电时的Xdebug断点。显示$this->instances
且$abstract
为cache
。