Прыщ всегда возвращается как массив

У меня есть эта черта

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,

Я ожидал, что они оба будут одним и тем же экземпляром. Может кто-нибудь сказать мне, что здесь происходит?

1 ответ

Решение

Ваша логика установки неверна: вы хотите установить this->container когда он не был установлен (есть null), а не когда он уже установлен (есть not null).

Другие вопросы по тегам