0

我有这个特质

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

$container = new Pimple\Container();
$app = new App($container); // uses ContainerAwareTrait, constructor calls `setContainer`
var_dump($app->getContainer(), $container);die;

我看到的是第一个var_dump结果是一个array,第二个是一个实例Pimple\Container

我期待它们都是同一个实例。有人能告诉我这里发生了什么吗?

4

1 回答 1

0

您的设置器逻辑错误:您想在this->container尚未设置时设置(is null),而不是在已设置时设置(is not null)。

于 2015-05-17T15:01:25.553 回答