PHP: Строки

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

Строка может быть определена четырьмя различными способами:

Строка в двойных кавычках

Строка в двойных кавычках:

$str = "Строка";

echo "Одну большую строку можно
      разбить на несколько маленьких строк,
      чтобы её было удобнее читать.";

В строках с двойными кавычками можно использовать управляющие последовательности. Управляющая последовательность — это специальные символы предназначенные для форматирования текстового вывода. В PHP доступны следующие управляющие последовательности:

Последовательность Значение
\n Перевод на новую строку (шестнадцатеричный код 0A).
\t Горизонтальная табуляция (шестнадцатеричный код 09).
\\ Обратная косая черта (обратный слэш).
\$ Знак доллара.
\" Двойная кавычка.
\xXX Символ, заданный одной или двумя шестнадцатеричными цифрами.

Основным свойством строк в двойных кавычках является возможность обработки переменных внутри строк.

$num = 10;
echo "Число: $num <br> Знак доллара: \$";

Строки, заключённые в двойные кавычки, могут содержать символы одинарных кавычек:

echo "Одинарная кавычка: '";

Строка в одинарных кавычках (апострофах)

Строка в одинарных кавычках:

$str = 'Строка';

echo 'Одну большую строку можно
      разбить на несколько маленьких строк,
      чтобы её было удобнее читать.';

В отличие от строк в двойных кавычках и heredoc-синтаксиса, переменные и управляющие последовательности (за одним исключением), заключённые в одинарные кавычки, не обрабатываются. Это означает, что они будут интерпретированы как обычные символы строки:

$num = 10;
echo 'Число: $num <br> Знак доллара: \$';

Чтобы в строке, заключённой в одинарные кавычки, можно было использовать одинарные кавычки, нужно их экранировать с помощью обратного слэша (\'). Если необходимо написать саму обратную косую черту, нужно продублировать её (\\):

echo 'Внутри используются \'одинарные\' кавычки';
echo 'Обратный слэш: \\';

Строки, заключённые в одинарные кавычки, могут содержать символы двойных кавычек:

echo 'Двойная кавычка: "';

Heredoc-синтаксис

Heredoc-синтаксис — это альтернативный способ записи строк.

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

Heredoc-синтаксис начинается с трёх символов <<<, после которых должен быть указан произвольный идентификатор (назовём его открывающим). Идентификатор может быть указан как в двойных кавычках, так и без них. Сразу после идентификатора должен следовать перевод на новую строку, никаких других символов кроме перевода на новую строку после идентификатора не должно быть, иначе возникнет ошибка. Далее идёт непосредственно строковое содержимое. После строкового содержимого, на отдельной строке, должен быть указан закрывающий идентификатор (тот же, что и после <<<). Перед ним и после него не должно быть никаких пробелов или других символов, за исключением точки с запятой. Если это правило нарушено, то считается, что закрывающий идентификатор отсутствует и будет вызвана ошибка:

<<<some_id
Hello
  "World!"
some_id;

$num = 10;
echo <<<"other_id"
Число: $num
other_id;

Nowdoc-синтаксис

Nowdoc-синтаксис также как и Heredoc является альтернативным способом записи строк.

Строка, определяемая с помощью Nowdoc-синтаксиса, работает также, как и строка, расположенная в одинарных кавычках. Разница между Nowdoc и строкой в одинарных кавычках заключается в том, что используя Nowdoc нет необходимости экранировать одинарные кавычки.

Синтаксис Nowdoc похож на Heredoc с той лишь разницей, что открывающий идентификатор обязательно должен быть заключён в одинарные кавычки:

$num = 10;
echo <<<'some_id'
Число: $num
some_id;

Обработка переменных в строках

Существует два типа синтаксиса обработки переменных в строках: простой и сложный.

Простой синтаксис — это когда имя переменной указывается в строке как есть.

Когда интерпретатор встречает знак доллара, он начинает последовательно проверять являются ли все последующие символы допустимыми символами в имени переменной. Таким образом, чтобы сформировать правильное имя переменной, он захватывает так много символов, на сколько это возможно:

$str = "World!";
echo "Hello $str";

Сложный синтаксис — это когда имя переменной заключается в фигурные скобки.

Так как, для обработки переменной в строке, интерпретатор захватывает так много символов, на сколько это возможно бывают ситуации когда интерпретатор не способен самостоятельно определить, где оканчивается имя переменной:

$sport1 = 'волей';
$sport2 = 'фут';

echo "Мне нравится $sport1бол и $sport2бол";

В данном случае не будет достигнут желаемый результат, поскольку интерпретатор будет считать $sport1 как часть имени переменной $sport1бол, которой не существует.

Чтобы явно указать интерпретатору, где оканчивается имя переменной требуется заключить имя переменной в фигурные скобки:

$sport1 = 'волей';
$sport2 = 'фут';

echo "Мне нравится {$sport1}бол и {$sport2}бол.";

Знак доллара может быть расположен как перед фигурной скобкой, так и после неё:

$sport1 = 'волей';
$sport2 = 'фут';

echo "Мне нравится ${sport1}бол и {$sport2}бол.";

Конкатенация

Конкатенация — это объединение двух или более строк в одну большую. Объединение происходит с помощью оператора конкатенации — . (точка). При конкатенации каждая последующая строка добавляется в конец предыдущей:

<?php
echo 'Из двух строк ' . 'делаем одну большую';
?>

Значение любого типа, которое объединяется со строкой, будет неявно преобразовано в строку и далее будет произведена конкатенация:

<?php
$str = "Число: ";
$num = 12;

echo $str . $num . '<br>';
echo 'Число: ' . 1;
?>

С этой темой смотрят:

Копирование материалов с данного сайта возможно только с разрешения администрации сайта
и при указании прямой активной ссылки на источник.
2011 – 2024 © puzzleweb.ru | razumnikum.ru

Реклама на сайте | puzinfo@puzzleweb.ru | ruen