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 :: Версия для печати :: new SplFixedArray как добавить в???
Форумы портала PHP.SU » » Вопросы новичков » new SplFixedArray как добавить в???

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

1. ytrewq123 - 18 Декабря, 2016 - 17:06:25 - перейти к сообщению
Здравствуйте!
Вопрос. Как добавить сразу несколько элементов в фиксированный массив.
$maass = new SplFixedArray(5);
Попробовал. array_splice. Он говорит неа, у тебя объект. По одному да $maass[3] ='INFO';
А как несколько сразу не подскажите.
2. T1grOK - 18 Декабря, 2016 - 18:05:10 - перейти к сообщению
Никак. Только "ручками".
3. teddy - 18 Декабря, 2016 - 18:18:23 - перейти к сообщению
Если объект уже создан, то не выйдет. Но при создании объекта есть возможность сразу инициализировать его несколькими элементами.
PHP:
скопировать код в буфер обмена
  1.  
  2. $data = ['a', 1, new stdclass];
  3. $fixed = \SplFixedArray::fromArray($data);
  4. var_dump($fixed);
  5.  

Если хочется снова добавить пачку, присобачить к уже созданному SplFixedArray, можно так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $newFixed = \SplFixedArray::fromArray(array_merge($fixed->toArray(), [1,2,3]));
  3.  

Но этот класс нужен для улучшения производительности(скорость, более экономное потребление памяти на больших данных), а такими финтами вы скорее потеряете чем выйграете, если конечно вы не сохраняете этот объект где нибудь для использования его в последующих запросах без подобных финтов.
4. ytrewq123 - 18 Декабря, 2016 - 22:22:46 - перейти к сообщению
Спасибо. ну ясненько.
teddy пишет:
Но этот класс нужен для улучшения производительности

Это я как бы знаю. Поэтому и пробовал всякое.
Будем смотреть, думать размышлять. Что как и куда.

 

Powered by ExBB FM 1.0 RC1