Pimple 总是作为数组返回
Pimple is always returned as an array
我有这个特质
use Pimple\Container;
trait ContainerAwareTrait
{
protected $container;
public function setContainer(Container $container = null)
{
if (null !== $this->container) {
$this->container = $container;
}
}
public function getContainer()
{
return $this->container;
}
}
我使用此代码(通过 App
class)
$container = new Pimple\Container();
$app = new App($container); // uses ContainerAwareTrait, constructor calls `setContainer`
var_dump($app->getContainer(), $container);die;
我看到的是第一个 var_dump
结果是 array
,第二个是 Pimple\Container
.
的实例
我原以为它们是同一个实例。谁能告诉我这是怎么回事?
你的setter逻辑是错误的:你想在this->container
还没有设置的时候设置它(是null
),而不是在它已经设置的时候(是not null
).
我有这个特质
use Pimple\Container;
trait ContainerAwareTrait
{
protected $container;
public function setContainer(Container $container = null)
{
if (null !== $this->container) {
$this->container = $container;
}
}
public function getContainer()
{
return $this->container;
}
}
我使用此代码(通过 App
class)
$container = new Pimple\Container();
$app = new App($container); // uses ContainerAwareTrait, constructor calls `setContainer`
var_dump($app->getContainer(), $container);die;
我看到的是第一个 var_dump
结果是 array
,第二个是 Pimple\Container
.
我原以为它们是同一个实例。谁能告诉我这是怎么回事?
你的setter逻辑是错误的:你想在this->container
还没有设置的时候设置它(是null
),而不是在它已经设置的时候(是not null
).