Альтернативный способ записи строковых литералов в PHP? (без "или" )

Что я могу использовать в php вместо обычных символов "и" вокруг чего-то?

Пример:

echo("Hello World!")

Спасибо!

Ответ 1

Существует четыре способа инкапсуляции строк, одинарных кавычек ', двойных кавычек ", heredoc и nowdoc.

Прочитайте полную статью php.net здесь.

Heredoc

Третий способ разграничения строк - это синтаксис heredoc: < < После этого оператора предоставляется идентификатор, а затем строка новой строки. Далее следует строка, а затем тот же идентификатор, чтобы закрыть цитату.

http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;

Nowdoc

Nowdocs - это строки с одним кавычком, что heredocs - это строки с двойными кавычками. A nowdoc задается аналогично heredoc, но синтаксический анализ не выполняется внутри nowdoc. Конструкция идеально подходит для встраивания PHP-кода или других больших блоков текста без необходимости экранирования. Он имеет некоторые общие черты с конструкцией SGML, поскольку он объявляет блок текста, который не предназначен для синтаксического анализа.

A nowdoc идентифицируют с тем же самым < последовательность, используемая для heredocs, но следующий идентификатор заключен в одинарные кавычки, например. & Л; < < 'СРВ'. Все правила для идентификаторов heredoc также применяются к идентификаторам nowdoc, особенно к появлению закрывающего идентификатора.

http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.nowdoc

$str = <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
EOD;

Экранирование

Если вы хотите использовать литеральные одиночные или двойные кавычки в одиночных или двойных кавычках, вам нужно их избежать:

$str = '\''; // single quote
$str = "\""; // double quote

Как отметил Герберт, вам не нужно избегать одиночных кавычек в двойных кавычках, и вам не нужно избегать двойных кавычек в одной кавычной строке.


Если вам нужно добавить кавычки в большом масштабе, используйте функцию addslashes():

$str = "Is your name O'reilly?";
echo addslashes($str); // Is your name O\'reilly?