PHP скрипты

MySQL

Apache

phpMyADmin

8.2: Присвоение значений массивов PHP

Главная Страница » Книги по PHP » Самоучитель PHP 5 для чайников с примерами » Присвоение значений

Для этого РНР предлагает два способа: присвоение значений и с помощью функции аrrау().

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

$closets[3] = "Майка";

В результате выполнения этой строки если массив $closets (шкафчики) еще не существует, то он будет создан. Его первый и пока единственный элемент будет содержать строку Майка. Ключом (который, кстати, может и отсутствовать) в данном случае будет число 3. Пример:

$closets[] = "Майка";

Здесь в квадратных скобках мы ничего не поставили. В этом случае если такого массива еще не существует, то по умолчанию ключом первого элемента будет число 0. Другими словами, эта запись будет эквивалентна следующему:

$closets[0] = "Майка";

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

$closets["Петров"] = "Майка";

В этом случае мы создали массив с одним элементом, ключ которого строка Петров.

В РНР существует особенность, связанная с использованием пустого ключа ([]). Пример:

$closets[ ] = "Майка";
$closets[] = "Кроссовки";
$closets[] = "Шорты";

Как мы уже говорили, первой строчкой создается массив PHP с одним элементом, ключ которого является число 0. При выполнении следующей строчки, РНР добавит еще один элемент (добавление всегда происходи к концу массива), ключ которого на единицу больше, то есть 1. Другими словами все это эквивалентно следующему:

$closets[0] = "Майка";
$closets[1] = "Кроссовки";
$closets[2] = "Шорты";

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

$closets[10] = "Майка";
$closets[1] = "Кроссовки";
$closets["Петров"] = "Шорты";
$closets[] = "Брюки"; // эквивалентно $closets[11] = "Брюки";

В этом случае четвертым элементом будет строка брюки, а ключ будет равен 11, так как максимальное значение ключа до этого было число 10. Если числовые ключи отсутствуют, то по умолчанию он будет равен 0. Пример:

$closets["Петров"] = "Шорты";
$closets[] = "Брюки"; // эквивалентно $closets[0] = "Брюки";

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

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

Поделиться с друзьями