Heredóc-синтаксис () — способ определения строковых переменных в исходном коде программ.

Heredoc (дословно с английского «здесь документ») — синтаксис занесения в переменную одно- или (часто) многострочного свободно форматированного текста «как есть».

При определении строковых переменных их содержимое, обычно, заключается в одинарные или двойные кавычки, в связи с чем символы кавычек, которые должны быть частью данных, приходится экранировать с помощью escape-последовательностей. Heredoc-синтаксис позволяет определить строку, не заключая её в кавычки, в связи с чем необходимость экранирования этих символов отпадает.

Примеры Обычное определение строки:

$s = 'Кавычки бывают \'одинарными\''; $t = "Кавычки бывают \"двойными\"";

heredoc-определение (PHP):

Переменные внутри heredoc интерпретируются.

$s = <<<EOL Кавычки бывают 'одинарными' и "двойными". $name и {$foo->bar} EOL;

В PHP 5.3+ появилась версия heredoc, в которой переменные не интерпретируются. Для этого идентификатор нужно окружить одинарными кавычками. Это называется nowdoc.

$s = <<<'EOL' Кавычки бывают 'одинарными' и "двойными". $name и {$foo->bar} EOL;

Также в PHP 5.3+ идентификатор можно окружить двойными кавычками. Это соответствует варианту без кавычек.

heredoc-определение (Perl):

$s = <<EOL; Кавычки бывают 'одинарными' и "двойными". EOL

После <<< (или << в Perl) необходимо указать идентификатор, затем идет строка, а потом этот же идентификатор, закрывающий вставку.

Закрывающий идентификатор должен начинаться в первом столбце строки. Кроме того, в PHP идентификатор должен соответствовать тем же правилам именования, что и все остальные метки: содержать только буквенно-цифровые символы и знак подчеркивания, и не должен начинаться с цифры. В Perl идентификатором может служить любая строка, заключенная в кавычки для открывающего идентификатора.

heredoc-определение (Ruby):

$s = <<HEREDOC Кавычки бывают 'одинарными' и "двойными". HEREDOC

В языке Ruby идентификатор может быть произвольным и не зависеть от регистра. Чаще всего в практике используется HEREDOC. Открывающийся идентификатор в одинарных кавычках не интерпретирует переменные, а в двойных кавычках ведет себя так же, как и без них.

Примечания

Ссылки Strings — PHP manual

Категория:Концепции языков программирования Категория:Статьи с примерами кода PHP