2010-04-09 2 views
3

Я пишу код для метода контроллера, и мне нужно использовать его для отправки электронной почты. Я пытаюсь использовать синтаксис heredoc для заполнения тела электронной почты, однако закрывающий тег, похоже, не распознается.PHP - Нельзя использовать Heredoc в методе класса?

$this->email = new Email(); 
$this->email->from = 'Automated Email'; 
$this->email->to = '[email protected]'; 
$this->email->subject = 'A new user has registered'; 
$this->email->body = <<<EOF 

Hello, a new user has registered. 

EOF; 

$this->email->send(); 

Все из отверстия <<< EOF вниз (до конца файла) отображается как если бы это было в кавычках.

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

Любые советы, оцененные.

Спасибо.

+0

Какую версию PHP вы используете? –

+1

У вас были пробелы после 'EOF;' - конечный идентификатор для строк heredoc должен быть полностью изолирован на своей собственной строке без ведомого или конечного пробела; см. большое красное предупреждение здесь: http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc – meagar

ответ

7

Убедитесь, что после точки с запятой после «EOF» у вас нет белого пространства.

+0

+1 хороший улов. Выделение кода показывает фиктивные пробелы. – soulmerge