Heredoc

Двойные кавычки

Одинарные кавычки

Простейший способ определить строку – это заключить ее в одинарные кавычки «'». Чтобы использовать одинарную кавычку внутри строки, как и во многих других языках, перед ней необходимо поставить символ обратной косой черты «\», т. е. экранировать ее. Если обратная косая черта должна идти перед одинарной кавычкой либо быть в конце строки, необходимо продублировать ее «\\'».

Если внутри строки, заключенной в одинарные кавычки, обратный слэш «\» встречается перед любым другим символом (отличным от «\» и «'» ), то он рассматривается как обычный символ и выводится, как и все остальные. Поэтому обратную косую черту необходимо экранировать, только если она находится в конце строки, перед закрывающей кавычкой.

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

<?phpecho 'Также вы можете вставлять в строки символ новой строки таким образом, поскольку это нормально'; // Выведет: Чтобы вывести ' надо// перед ней поставить \echo 'Чтобы вывести \' надо перед' . 'ней поставить \\';// Выведет: Вы хотите удалить C:\*.*?echo 'Вы хотите удалить C:\\*.*?';// Выведет: Вы хотите удалить C:\*.*?echo 'Вы хотите удалить C:\*.*?';// Выведет: Это не вставит: \n// новую строкуecho 'Это не вставит: \n новую строку';// Выведет: Переменные $expand также// $either не подставляютсяecho 'Переменные $expand также $either' . 'не подставляются';?>

Если строка заключена в двойные кавычки «"», PHP распознает большее количество управляющих последовательностей для специальных символов. Некоторые из них приведены в таблице 2.7.

Таблица 2.7. Управляющие последовательности
Последовательность Значение
\n Новая строка (LF или 0x0A (10) в ASCII)
\r Возврат каретки (CR или 0x0D (13) в ASCII)
\t Горизонтальная табуляция (HT или 0x09 (9) в ASCII)
\\ Обратная косая черта
\$ Знак доллара
\" Двойная кавычка

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

Самым важным свойством строк в двойных кавычках является обработка переменных.

Другой способ определения строк – это использование heredoc-синтаксиса. В этом случае строка должна начинаться с символа <<<, после которого идет идентификатор. Заканчивается строка этим же идентификатором. Закрывающий идентификатор должен начинаться в первом столбце строки. Кроме того, идентификатор должен соответствовать тем же правилам именования, что и все остальные метки в PHP: содержать только буквенно-цифровые символы и знак подчеркивания и начинаться не с цифры или знака подчеркивания.

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

<?php$str = <<<EODПример строки,охватывающей несколькострочек, с использованиемheredoc-синтаксисаEOD;// Здесь идентификатор – EOD. Ниже// идентификатор EOT$name = 'Вася';echo <<<EOTМеня зовут "$name". EOT;// это выведет "Меня зовут Вася."?>

Замечание: Поддержка heredoc была добавлена в PHP 4.

Тип array (массив)

Массив в PHP представляет собой упорядоченную карту – тип, который преобразует значения в ключи. Этот тип оптимизирован в нескольких направлениях, поэтому вы можете использовать его как собственно массив, список (вектор), хеш-таблицу (являющуюся реализацией карты), стэк, очередь и т.д. Поскольку вы можете иметь в качестве значения другой массив PHP, можно также легко эмулировать деревья.

Определить массив можно с помощью конструкции array() или непосредственно задавая значения его элементам.

Определение при помощи array()

array ([key] => value, [key1] => value1, ... )

Языковая конструкция array() принимает в качестве параметров пары ключ => значение, разделенные запятыми. Символ => устанавливает соответствие между значением и его ключом. Ключ может быть как целым числом, так и строкой, а значение может быть любого имеющегося в PHP типа. Числовой ключ массива часто называют индексом. Индексирование массива в PHP начинается с нуля. Значение элемента массива можно получить, указав после имени массива в квадратных скобках ключ искомого элемента. Если ключ массива представляет собой стандартную запись целого числа, то он рассматривается как число, в противном случае – как строка. Поэтому запись $a["1"] равносильна записи $a[1], так же как и $a["-1"] равносильно $a[-1].

<?php$books = array ("php" => "PHP users guide", 12 => true);echo $books["php"];//выведет "PHP users guide"echo $books[12]; //выведет 1?>

Если для элемента ключ не задан, то в качестве ключа берется максимальный числовой ключ, увеличенный на единицу. Если указать ключ, которому уже было присвоено какое-то значение, то оно будет перезаписано. Начиная с PHP 4.3.0, если максимальный ключ – отрицательное число, то следующим ключом массива будет ноль (0).

<?php// массивы $arr и $arr1 эквиваленты$arr = array(5 => 43, 32, 56, "b" => 12);$arr1 = array(5 => 43, 6 => 32, 7 => 56, "b" => 12);?>

Если использовать в качестве ключа TRUE или FALSE, то его значение переводится соответственно в единицу и ноль типа integer. Если использовать NULL, то вместо ключа получим пустую строку. Можно использовать и саму пустую строку в качестве ключа, при этом ее надо брать в кавычки. Так что это не то же самое, что использование пустых квадратных скобок. Нельзя использовать в качестве ключа массивы и объекты.