Тип string (строки)Строка – это набор символов. В PHP символ – это то же самое, что байт, это значит, что существует ровно 256 различных символов. Это также означает, что PHP не имеет встроенной поддержки Unicode. В PHP практически не существует ограничений на размер строк, поэтому нет абсолютно никаких причин беспокоиться об их длине.
Строка в PHP может быть определена тремя различными способами:
- с помощью одинарных кавычек;
- с помощью двойных кавычек;
- heredoc-синтаксисом.
Одинарные кавычкиПростейший способ определить строку – это заключить ее в одинарные кавычки «'». Чтобы использовать одинарную кавычку внутри строки, как и во многих других языках, перед ней необходимо поставить символ обратной косой черты «\», т. е. экранировать ее. Если обратная косая черта должна идти перед одинарной кавычкой либо быть в конце строки, необходимо продублировать ее «\\'».
Если внутри строки, заключенной в одинарные кавычки, обратный слэш «\» встречается перед любым другим символом (отличным от «\» и «'» ), то он рассматривается как обычный символ и выводится, как и все остальные. Поэтому обратную косую черту необходимо экранировать, только если она находится в конце строки, перед закрывающей кавычкой.
В PHP существует ряд комбинаций символов, начинающихся с символа обратной косой черты. Их называют управляющими последовательностями, и они имеют специальные значения, о которых мы расскажем немного позднее. Так вот, в отличие от двух других синтаксисов, переменные и управляющие последовательности для специальных символов, встречающиеся в строках, заключенных в одинарные кавычки, не обрабатываются.
<?php
echo 'Также вы можете вставлять в строки
символ новой строки таким образом,
поскольку это нормально';
// Выведет: Чтобы вывести ' надо
// перед ней поставить \
echo 'Чтобы вывести \' надо перед' .
'ней поставить \\';
// Выведет: Вы хотите удалить C:\*.*?
echo 'Вы хотите удалить C:\\*.*?';
// Выведет: Вы хотите удалить C:\*.*?
echo 'Вы хотите удалить C:\\*.*?';
// Выведет: Это не вставит: \n
// новую строку
echo 'Это не вставит: \n новую строку';
// Выведет: Переменные $expand также
// $either не подставляются
echo 'Переменные $expand также $either' .
'не подставляются';
?>
Пример
2.7.
Использование управляющих последовательностей
(html,
txt)
Двойные кавычкиЕсли строка заключена в двойные кавычки «"», PHP распознает большее количество управляющих последовательностей для специальных символов. Некоторые из них приведены в таблице 2.7.
Таблица 2.7.
Управляющие последовательностиПоследовательность | Значение |
---|
\n | Новая строка (LF или 0x0A (10) в ASCII) | \r | Возврат каретки (CR или 0x0D (13) в ASCII) | \t | Горизонтальная табуляция (HT или 0x09 (9) в ASCII) | \\ | Обратная косая черта | \$ | Знак доллара | \" | Двойная кавычка | Повторяем, если вы захотите экранировать любой другой символ, обратная косая черта также будет напечатана!
Самым важным свойством строк в двойных кавычках является обработка переменных.
HeredocДругой способ определения строк – это использование heredoc-синтаксиса. В этом случае строка должна начинаться с символа <<<, после которого идет идентификатор. Заканчивается строка этим же идентификатором. Закрывающий идентификатор должен начинаться в первом столбце строки. Кроме того, идентификатор должен соответствовать тем же правилам именования, что и все остальные метки в PHP: содержать только буквенно-цифровые символы и знак подчеркивания и начинаться не с цифры или знака подчеркивания.
Heredoc-текст ведет себя так же, как и строка в двойных кавычках, при этом их не имея. Это означает, что вам нет необходимости экранировать кавычки в heredoc, но вы по-прежнему можете использовать перечисленные выше управляющие последовательности. Переменные внутри heredoc тоже обрабатываются.
<?php
$str = <<<EOD
Пример строки,охватывающей несколько
строчек, с использованием
heredoc-синтаксиса
EOD;
// Здесь идентификатор – EOD. Ниже
// идентификатор EOT
$name = 'Вася';
echo <<<EOT
Меня зовут "$name".
EOT;
// это выведет "Меня зовут "Вася"."
?>
Пример
2.8.
Использование heredoc-синтаксиса
(html,
txt)
Замечание: Поддержка heredoc была добавлена в PHP 4.
|