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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Инициализация массива

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Kave
Отправлено: 13 Августа, 2011 - 17:36:46
Post Id


Новичок


Покинул форум
Сообщений всего: 51
Дата рег-ции: Апр. 2011  


Помог: 1 раз(а)




Моя умная книга разбивает работу с массивами на 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;

Можно ли заранее как-то инициализировать массивы или всегда придется сначала выяснять, существует ли массив?

(Отредактировано автором: 13 Августа, 2011 - 17:37:38)

 
 Top
White
Отправлено: 13 Августа, 2011 - 18:05:22
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




Kave пишет:
if (!isset($consumable))
{
$consumable = array('Oil'=>10);
}
else
$consumable ['Oil']=10;


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

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


-----
if(time()>1356048000) die();
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB