Курс "Язык программирования PHP" - страница 12

стр.

>

> символ новой строки таким образом,

> поскольку это нормально';

>// Выведет: Чтобы вывести ' надо

>// перед ней поставить \

>echo 'Чтобы вывести \' надо перед '

> 'ней поставить \\';

>// Выведет: Вы хотите удалить C:\*.*?

>echo 'Вы хотите удалить C:\\*.*?';

>// Выведет: Это не вставит: \n

>// новую строку

>echo 'Это не вставит: \n новую строку';

>// Выведет: Переменные $expand также

>// $either не подставляются

>echo 'Переменные $expand также $either' .

> 'не подставляются';

>?>


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


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


\n

Новая строка (LF или 0x0A (10) в ASCII)


\r

Возврат каретки (CR или 0x0D (13) в ASCII)


\t

Горизонтальная табуляция (HT или 0x09 (9) в ASCII)


\\

Обратная косая черта


\$

Знак доллара


\"

Двойная кавычка


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


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


Heredoc


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


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


>

>$str = <<

>Пример строки,охватывающей несколько

>строчек, с использованием

>heredoc-синтаксиса

>EOD;

>// Здесь идентификатор – EOD. Ниже

>// идентификатор EOT

>$name = 'Вася';

>echo <<

>Меня зовут "$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].


>

>$books = array ("php" =>

> "PHP users guide",

> 12 => true);

>echo $books["php"];

>//выведет "PHP users guide"

>echo $books[12]; //выведет 1

>?>


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


>

>// массивы $arr и $arr1 эквиваленты

>$arr = array(5 => 43, 32, 56, "b" => 12);