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 :: Версия для печати :: близкое знакомство с AppendIterator
Форумы портала PHP.SU » » Объектно-ориентированное программирование » близкое знакомство с AppendIterator

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

1. DlTA - 22 Июля, 2014 - 10:52:51 - перейти к сообщению
сегодня лень толкнула на близкое изучение AppendIterator
предисловие (Отобразить)
где $optionList обычно ассоциативный массив, и вот в очередной раз готовя список лень шелохнулась, так как исходный список поставщиков получался из итератора объектов поставщиков,
и нужно было в первый элемент добавить элемент "Все"


так вот при первом ознакомлении с этим классом кидается в глаза неудобство:
PHP:
скопировать код в буфер обмена
  1.  
  2. $pizzas   = new ArrayIterator(array('Margarita', 'Siciliana', 'Hawaii'));
  3. $toppings = new ArrayIterator(array('Cheese', 'Anchovies', 'Olives', 'Pineapple', 'Ham'));
  4. $appendIterator = new AppendIterator;
  5. $appendIterator->append($pizzas);
  6. $appendIterator->append($toppings);
  7.  

получается что б смержить с массивом, нужно каждый раз оборачивать массив в ArrayIterator, фиг бы с ним, но для этого каждый раз писать $appendIterator->append($pizzas); громоздко
выходом становится обернуть создание итератора и мерж в метода:

Спойлер (Отобразить)


p.s. недостатком является тот факт, что в данном случае все объекты в итераторе должны поддерживать метод __toString()

 

Powered by ExBB FM 1.0 RC1