Создание объекта внутри другого класса?
Вот так не работает, но по синтаксису PHP вроде логично.ибоThis declaration may include an initialization, but this initialization must be a constant value--that is, it must be able to be evaluated at compile time and must not depend on run-time information in order to be evaluated.
соглашаться или нет - дело ваше. только в реале это ничего не изменит.
Потому что до версии 7.0 у PHP был весьма убогий парсер, основанный на алгоритме LALR. Но без AST, он накладывает существенные ограничения на возможности разбора и последующей компиляции.
В 7.0 запилили AST, которое открывает более широкие возможности, связанные с парсом и анализом программы, но до вышеописанной конструкции они не дошли, т.е. получающиеся узлы в AST никак не анализируются, но, потенциально, возможность использования неконстантных выражений в объявлении полей класса сейчас есть.
Можете написать разработчикам в рассылку "php internals" с просьбой реализовать. Может быть кто-то поможет. А может и нет.
UPD.
Вот, RFC от Никиты Попова (один из разработчиков ядра PHP), объясняющий необходимость реализации AST: https://wiki.php.net/rfc/abstract_syntax_tree
И веб-интерфейс рассылки "php internals": externals.io
UPD2.
Я не слишком силён в ядре и в runtime'е PHP, поэтому не смогу дать вам полный ответ на ваш вопрос. Лучше всего если вы спросите у непосредственно разработчиков в этой рассылке.