Задать вопрос

Почему в PHP 5.5 нельзя в классе создать свойство равное инстансу наследника?

Кто знает, почему нельзя в классе создать свойство равное инстансу наследника?
php падает без ошибок, просто краш. Версия 5.5.16.

Пример кода:

class Pricing extends Master
{
    /**
     * @var Brute
     */
    private $processingManager;

    public function __construct()
    {
        parent::__construct();

        $this->processingManager = new Brute();
    }

    /**
     *
     * @param array $result
     * @throws Exception
     */
    public function process($result)
    {
        return $this->processingManager->process($result);
    }
}

class Brute extends Pricing {

 public function process($result)
    {
        //some code
    }
}


Получаю в nginx 502 ошибку. PHP работает через php5-fpm.
Если я меняю код на прямое создание Pricing (удалив из него Brute) или прямое Brute то все работает.
Выше Master, от которого наследуется Pricing - реализует интерфейс SomeInterface, т.е. он общий.
  • Вопрос задан
  • 2342 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
disc
@disc
веб-разработчик
По-моему происходит зацикливание, т.к. в конструкторе у вас инициализируется new Brute()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы