Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Так что же в этом плохого?

Когда-нибудь в будущем команда разработчиков PHP возможно пожелает добавить еще одну константу или ключевое слово, либо вы можете ввести в ваше приложение еще одну константу и тогда у вас могут возникнуть проблемы. Например, вы уже не можете использовать таким образом слова empty и default, поскольку они являются зарезервированными ключевыми словами.

Замечание: Повторим, внутри строки (string), заключенной в двойные кавычки правильным является не окружать индексы массива кавычками, поэтому "$foo[bar]" является верным. Более подробно почему - смотрите вышеприведенные примеры, а также раздел обработка переменных в строках.

Преобразование в массив

Для любого из типов: integer, float, string, boolean и resource, если вы преобразуете значение в массив, вы получите массив с одним элементом (с индексом 0), являющимся скалярным значением, с которого вы начали.

Если вы преобразуете в массив объект (object), вы получите в качестве элементов массива свойства (переменные-члены) этого объекта. Ключами будут имена переменных-членов.

Если вы преобразуете в массив значение NULL, вы получите пустой массив.

Сравнение

Массивы можно сравнивать при помощи функции array_diff() и Операторов массивов.

Примеры

Тип массив в PHP является очень гибким, поэтому мы приведем здесь несколько примеров, чтобы продемонстрировать вам все возможности массивов.

<?php // это $a = array('color' => 'red', 'taste' => 'sweet', 'shape' => 'round', 'name' => 'apple', 4 // ключом будет 0); // полностью соответствует $a['color'] = 'red'; $a['taste'] = 'sweet'; $a['shape'] = 'round'; $a['name'] = 'apple'; $a[] = 4; // ключом будет 0 $b[] = 'a'; $b[] = 'b'; $b[] = 'c'; // создаст массив array(0 => 'a', 1 => 'b', 2 => 'c'), // или просто array('a', 'b', 'c')?>
Пример 11-4. Использование array()
<?php // Массив как карта (свойств) $map = array('version' => 4, 'OS' => 'Linux', 'lang' => 'english', 'short_tags' => true); // исключительно числовые ключи $array = array(7, 8, 0, 156, -10); // это то же самое, что и array(0 => 7, 1 => 8,...) $switching = array(10, // ключ = 0 5 => 6, 3 => 7, 'a' => 4, 11, // ключ = 6 (максимальным числовым индексом был 5) '8' => 2, // ключ = 8 (число!) '02' => 77, // ключ = '02' 0 => 12 // значение 10 будет перезаписано на 12); // пустой массив $empty = array();?>
     

 

Пример 11-5. Коллекция
<?php $colors = array('красный', 'синий', 'зеленый', 'желтый'); foreach ($colors as $color) { echo "Вам нравится $color?\n"; }?>

Результат работы приведенного скрипта будет следующий:

Вам нравится красный? Вам нравится синий? Вам нравится зеленый? Вам нравится желтый?

Обратите внимание, что в настоящее время невозможно изменять значения массива в таком цикле напрямую. Однако можно сделать так:

Пример 11-6. Коллекция
<?php foreach ($colors as $key => $color) { // не будет работать: //$color = strtoupper($color); // работает: $colors[$key] = strtoupper($color); } print_r($colors);?>

Результат работы приведенного скрипта будет следующий:

Array ( [0] => КРАСНЫЙ [1] => СИНИЙ [2] => ЗЕЛЕНЫЙ [3] => ЖЕЛТЫЙ )

Следующий пример создает начинающийся с единицы массив.

Пример 11-7. Индекс, начинающийся с единицы
<?php $firstquarter = array(1 => 'Январь', 'Февраль', 'Март'); print_r($firstquarter);?>

Результат работы приведенного скрипта будет следующий:

Array ( [1] => 'Январь' [2] => 'Февраль' [3] => 'Март' )

 

Пример 11-8. Заполнение массива
<?php // заполняет массив всеми элементами директории $handle = opendir('.'); while (false!== ($file = readdir($handle))) { $files[] = $file; } closedir($handle);?>

Массивы упорядочены. Вы можете изменять порядок элементов, используя различные функции сортировки. Для дополнительной информации смотрите раздел функции для работы с массивами. Вы можете подсчитать количество элементов в массиве, используя функцию count().

Пример 11-9. Сортировка массива
<?php sort($files); print_r($files);?>

Поскольку значение массива может быть чем угодно, им также может быть другой массив. Таким образом вы можете создавать рекурсивные и многомерные массивы.

Пример 11-10. Рекурсивные и многомерные массивы
<?php $fruits = array ("фрукты" => array ("a" => "апельсин", "b" => "банан", "c" => "яблоко"), "числа" => array (1, 2, 3, 4, 5, 6), "дырки" => array ("первая", 5 => "вторая", "третья")); // Несколько примеров доступа к значениям предыдущего массива echo $fruits["дырки"][5]; // напечатает "вторая" echo $fruits["фрукты"]["a"]; // напечатает "апельсин" unset($fruits["дырки"][0]); // удалит "первая" // Создаст новый многомерный массив $juices["яблоко"]["зеленое"] = "хорошее";?>

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

<?php $arr1 = array(2, 3); $arr2 = $arr1; $arr2[] = 4; // $arr2 изменился, // $arr1 по прежнему array(2,3) $arr3 = &$arr1; $arr3[] = 4; // теперь $arr1 и $arr3 эквивалентны?>

 


Дата добавления: 2015-10-30; просмотров: 52 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Почему $foo[bar] это неверно?| Государство как инструмент: 1648–1789 гг.

mybiblioteka.su - 2015-2024 год. (0.009 сек.)