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).