Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Инициализация массива
Форумы портала PHP.SU » » Вопросы новичков » Инициализация массива

Страниц (1): [1]
 

1. Kave - 13 Августа, 2011 - 17:36:46 - перейти к сообщению
Моя умная книга разбивает работу с массивами на 2 этапа:
1. Инициализация массива;
$prices = $array('Tyres' =>100;'Oil' =>10;'Sparkplugs'=>4);
2. Доступ к элементам массива;
$prices ['Fenders']=110;

Т.е. во втором случае мы добавляем один элемент.

Итого у нас есть: tyres, oil, sparkplugs, fenders.
Я хочу раскидать это на два массива: 1) consumable: масло и свечи; 2) others: шины и крылья.

Так вот, я бы с удовольствием заранее инициализировал два массива. Иначе получается, что я обхожу в цикле все элементы первоначального массива $prices, и мне приходится дробить процедуру надвое:

if (!isset($consumable))
{
$consumable = array('Oil'=>10);
}
else
$consumable ['Oil']=10;

Можно ли заранее как-то инициализировать массивы или всегда придется сначала выяснять, существует ли массив?
2. White - 13 Августа, 2011 - 18:05:22 - перейти к сообщению
Kave пишет:
if (!isset($consumable))
{
$consumable = array('Oil'=>10);
}
else
$consumable ['Oil']=10;


вы вероятно либо неправильно поняли, либо неправильно объяснили.
в php нет жесткой типизации, т.е. переменную объявлять не нужно. она автоматически объявляется, и ей дается определенный тип во время присвоения ей значения, т.е. эта конструкция заменяется

происходит следующее: если массива с именем $consumable нет, он создается и его элементу ['Oil'] присваивается значение 10.

 

Powered by ExBB FM 1.0 RC1