2013-12-06 5 views
0

Следующий код PHP выдаст ошибку:Переменные в Heredoc внутри объекта в PHP

class Foo{ 
    public $bar = <<<EOF 
     {$this->foobar} 
EOF; 
    public $foobar = "123"; 

    public function echoBar(){ 
     echo $this->bar; 
    } 
} 

Он даже не должны быть в скобках, любая попытка подстановки переменной выдает ошибку.

Может кто-нибудь объяснить, почему? Ошибка ввода heredoc внутри функции исправляет ошибку, но мне было интересно, что это за причина.

Версия php shell - Zend Engine v2.3.0.

+0

«Версия PHP оболочки Zend Engine v2.3.0» Что такое PHP версии? Согласно официальным документам PHP, «Начиная с PHP 5.3 это ограничение допустимо только для heredocs, содержащих переменные». – JakeGould

ответ

1

Ответ is here в официальных PHP документации:

Heredocs can not be used for initializing class properties. Since PHP 5.3, this limitation is valid only for heredocs containing variables.

Смежные вопросы