Laravel 的 instance 绑定源码中,为什么要判断是否注册?
大家首先看看服务容器里面instance的绑定代码:
public function instance($abstract, $instance)
{
$this->removeAbstractAlias($abstract);
unset($this->aliases[$abstract]);
$this->instances[$abstract] = $instance;
if ($this->bound($abstract)) {
$this->rebound($abstract);
}
}
public function bound($abstract)
{
return isset($this->bindings[$abstract]) ||
isset($this->instances[$abstract]) ||
$this->isAlias($abstract);
}
很明显,instance函数中刚刚给instances赋值,然后就去利用bound函数去判断abstract是否被注册,这if条件百分之百为真啊,这个判断条件有啥用?
推荐文章: