Вы находитесь на странице: 1из 2

Лекции курса PHP7 + MySQL с нуля

(краткое содержание)

ЛЕКЦИЯ 10. СТРОКОВЫЕ ВЫРАЖЕНИЯ.

Строки в PHP – одни из основных объектов. Строки могут содержать в себе


текст вместе с символами форматирования.
Строка, как Вы уже заметили ранее, заключается в различные виды кавычек:
двойные кавычки, одинарные кавычки (апострофы), обратные одинарные кавычки.
Здесь стоит детально рассмотреть разницу между этими символами.

Строка в апострофах
В случае, когда строка заключена в одинарные кавычки, она трактуется
интерпретатором в том виде, в каком записана:
$string = ‘New string which include $variable\n’
echo $string // На выходе получим как есть: New string which include $variable\n
Исключением являются лишь последовательности:
\’ – трактуется как апостроф и предназначена для включения в строку символа
апострофа: ‘Don\’t do this’ (на выходе: Don’t do this);
\\ - трактуется как обратный слеш и позволяет вставлять в строку этот символ:
‘C:\\windows\\system32’ (на выходе: C:\windows\system32).

Строка в кавычках
Строка в кавычках имеет больший набор специальных символов, которые
позволяют оформлять строку с учетом форматирования.
Вот список некоторых дополнительных символов:
- \n – символ новой строки;
- \r – символ возврата каретки;
- \t – символ табуляции;
- \$ - символ $, чтобы следующий за ним текст не был интерполирован, как
переменная;
- \” – символ двойной кавычки;
- \\ - символ обратного слеша;
- \xNN – символ с шестнадцатеричным кодом NN.
Переменные в строках интерполируются и принимают свои значения:
$string = “new world”;
echo “Welcome to $string”; // На выводе: Welcome to new world.
Возникает вопрос – как указать символ, следующий без пробела за
переменной? Скажем, Вы хотите добавить в существующий вывод несколько
восклицательных знаков в конце строки:
Welcome to new world!!!
В случае, если Вы введете:
echo “Welcome to $string!!!”,
то на выходе получите ошибку, так как переменной $string!!! не существует.
Для этого существует, как минимум, 3 способа:
1) С помощью оператора конкатенации “.”:
echo “Welcome to $string”.”!!!”;
2) С помощью обрамления переменной в фигурные скобки {}:
echo “Welcome to {$string}!!!”;
3) С помощью фигурных скобок, но с выносом символа $ за скобки:
echo “Welcome to ${string}!!!”;

1
Лекции курса PHP7 + MySQL с нуля
(краткое содержание)

Внутри двойных кавычек допускается использование апострофов без особого


выделения специальными символами.

Here-документ
В PHP существует еще один способ записи строковых констант, который
исторически называют here-документом. Он удобен для записи многострочных
переменных или констант, в т. ч. включающих в себя другие переменные:
$var = “часть строки”;
$here_var = <<<MARKER
Далее идет текст переменной,
включающей в себя и другие переменные,
в свою очередь, включающие $var и располагающиеся
внутри этой строки.
MARKER;
В данном случае MARKER может быть любым алфавитно-цифровым
идентификатором, не встречающимся в теле here-документа. Правда, есть
определенные ограничения при использовании here-документа:
- после MARKER и до конца строки не должны идти никакие непробельные
символы;
- завершающая строка MARKER; должна оканчиваться точкой запятой, после
которой до конца строки не должно быть больше инструкций.
Накладываемые ограничения несколько стесняют использование подобных
выражений, требуя постоянно следить за формой составления и соблюдением
синтаксиса.

Now-документ
В современных версиях языка (с версии 5.3 и новее) был введен аналог here-
документа – now-документ. Его основные отличия в том, что MARKER заключается
в апострофы, а переменные внутри строки не интерполируются:
$var = “часть строки”;
$here_var = <<<’MARKER’
Далее идет текст переменной,
включающей в себя и другие переменные,
в свою очередь, включающие $var и располагающиеся
внутри этой строки.
MARKER;

Обратные одинарные кавычки (обратные апострофы)


Заставляет PHP выполнить команду операционной системы и то, что она
выполнила, подставить на место заданной строки:
$string = `command.com/cd C:\windows\system32`;
echo $string;