Строковые значения
Строкой (string) называется последовательность символов, которая рассматривается как единое целое, но при этом обеспечивает доступ к отдельным символам. Примеры строк:
thesaurus
49ers
abc
&%/$#
Обратите внимание: в РНР не поддерживается символьный тип данных. Строковый тип может рассматриваться как единое представление для последовательностей, состоящих из одного или нескольких символов.
Строковое присваивание
Строки делятся на две категории в зависимости от типа ограничителя — они могут ограничиваться парой кавычек (" ") или апострофов (' '). Между этими категориями существуют два принципиальных различия. Во-первых, имена переменных в строках, заключенных в кавычки, заменяются соответствующими значениями, а строки в апострофах интерпретируются буквально, даже если в них присутствуют имена переменных,
Два следующих объявления дают одинаковый результат:
$food = "meatloaf";
$food = 'meatloaf';
Однако результаты следующих объявлений сильно различаются:
$sentence = "My favorite food is $food";
$sentence2 = 'My favorite food is $food';
Переменной $sentence присваивается строка
My favorite food is meatloaf.
Обратите внимание: переменная $food автоматически интерпретируется. С другой стороны, переменной $sentence2 присваивается строка
My favorite food is $food.
В отличие от переменной $sentence, в $sentence2 осталась не интерпретированная переменная $food. Различия обусловлены использованием кавычек и апострофов при присваивании переменным $sentence и $sentence2.
Таблица.1.Служебные символы в строках
Последовательность | Смысл |
\n | Новая строка |
\r | Возврат курсора |
\t | Горизонтальная табуляция |
\\ | Обратная косая черта |
\$ | Знак доллара |
\" | Кавычка |
\[0-7]{1,3} | Восьмеричная запись числа (в виде регулярного выражения) |
\x[0-9A-Fa-f]{l,2} | Шестнадцатиричная запись числа (в виде регулярного выражения) |
Второе принципиальное различие заключается в том, что в строках, заключенных в кавычки, распознаются все существующие служебные символы, а в строках, заключенных в апострофы, — только служебные символы «\\» и «\». Следующий пример наглядно демонстрирует различия между присваиванием строк, заключенных в кавычки и апострофы:
$double_list = "item1\nitem2\nitem2";
$single_list = 'item1\nitem2\nitem2';
Если вывести обе строки в браузере, окажется, что строка в кавычках содержит внутренние символы новой строки, а в строке в апострофах последовательность \n выводится как обычные символы. Хотя многие служебные символы в браузерах несущественны, при форматировании для других условий они играют очень важную роль. Помните об этом, выбирая между кавычками и апострофами, и вам удастся избежать многих неожиданностей.
Синтаксис встроенной документации
Второй вариант синтаксиса ограничения строк, представленный в HTML4, называется встроенной документацией (here doc). В этом варианте синтаксиса строка начинается с символов <<<, за которыми следует некоторый идентификатор по вашему выбору, затем строка, присваиваемая переменной. Конструкция заканчивается вторым экземпляром того же идентификатора. Пример:
$paragraph = <<<DELIM
This is a string that
Will be interpreted exactly
As it is written in the
variable assignment,
DELIM;
Выбранный идентификатор не должен присутствовать в присваиваемой строке. Более того, первый символ завершающего идентификатора должен находиться в первом столбце строки, завершающей конструкцию.
Обращение к отдельным символам строк
К отдельным символам строки можно обращаться как к элементам массива с последовательной нумерацией (см. следующий раздел). Пример:
$sequence_number = "04efgh";
$letter = Ssequence_number[4];
Переменной $ letter будет присвоено значение g. Как вы узнаете из следующего раздела, в РНР нумерация элементов массивов начинается с 0. Соответственно, выражение $sequence_number[l] будет равно 4.
Дата добавления: 2015-09-14; просмотров: 1771;