Heredoc-синтаксис
Heredóc-синтаксис (/həˈredɒk/) — способ определения строковых переменных в исходном коде программ.
Heredoc (дословно с английского «здесь документ») — синтаксис занесения в переменную одно- или (часто) многострочного свободно форматированного текста «как есть».[1]
При определении строковых переменных их содержимое, обычно, заключается в одинарные или двойные кавычки, в связи с чем символы кавычек, которые должны быть частью данных, приходится экранировать с помощью escape-последовательностей. Heredoc-синтаксис позволяет определить строку, не заключая её в кавычки, в связи с чем необходимость экранирования этих символов отпадает.[2]
Примеры
[править | править код]Обычное определение строки:
$s = 'Кавычки бывают \'одинарными\'';
$t = "Кавычки бывают \"двойными\"";
heredoc-определение (PHP):
Переменные внутри heredoc интерпретируются.
$s = <<<EOL
Кавычки бывают 'одинарными' и "двойными".
$name и {$foo->bar[1]}
EOL;
В PHP 5.3 появилась версия heredoc, в которой переменные не интерпретируются. Для этого идентификатор нужно окружить одинарными кавычками. Это называется nowdoc.
$s = <<<'EOL'
Кавычки бывают 'одинарными' и "двойными".
$name и {$foo->bar[1]}
EOL;
Также в PHP 5.3 идентификатор можно окружить двойными кавычками. Это соответствует варианту без кавычек.
heredoc-определение (Perl):
$s = <<EOL;
Кавычки бывают 'одинарными' и "двойными".
EOL
После <<<
(или <<
в Perl) необходимо указать идентификатор, затем идет строка, а потом этот же идентификатор, закрывающий вставку.[1][3]
Закрывающий идентификатор должен начинаться в первом столбце строки. Кроме того, в PHP идентификатор должен соответствовать тем же правилам именования, что и все остальные метки: содержать только буквенно-цифровые символы и знак подчеркивания, и не должен начинаться с цифры.[4] В Perl идентификатором может служить любая строка, заключенная в кавычки для открывающего идентификатора.
heredoc-определение (Ruby):
$s = <<HEREDOC
Кавычки бывают 'одинарными' и "двойными".
HEREDOC
В языке Ruby идентификатор может быть произвольным и не зависеть от регистра. Чаще всего в практике используется HEREDOC
. Открывающийся идентификатор в одинарных кавычках не интерпретирует переменные, а в двойных кавычках ведет себя так же, как и без них.[5]
Примечания
[править | править код]- ↑ 1 2 Синтаксис HEREDOC . Дата обращения: 16 августа 2015. Архивировано 23 октября 2015 года.
- ↑ Синтаксис типа string (строк) . Дата обращения: 16 августа 2015. Архивировано 24 сентября 2015 года.
- ↑ Php.net: heredoc-синтаксис . Дата обращения: 16 августа 2015. Архивировано 14 августа 2015 года.
- ↑ Php.ru: Строки . Дата обращения: 16 августа 2015. Архивировано 15 августа 2015 года.
- ↑ theglitchy.com: HEREDOC и его использование в Ruby . Дата обращения: 1 октября 2019. Архивировано 1 октября 2019 года.
Ссылки
[править | править код]- Strings — PHP manual Архивная копия от 25 января 2009 на Wayback Machine (англ.)