Size: a a a

2020 April 28

VZ

Vasily Zorin in PHP
источник

VZ

Vasily Zorin in PHP
Вот какой фикс я сделал
источник

AL

Alexander Lisachenko in PHP
Если быть кратким - в момент удаления элемента на ходу итератор начинает указывать уже на следующий элемент
источник

VZ

Vasily Zorin in PHP
foreach ($storage->it() as $obj) ....
источник

AL

Alexander Lisachenko in PHP
И поэтому вы пролетаете индекс 2
источник

AL

Alexander Lisachenko in PHP
Потому что итератор не может указывать на битое значение. c’est la vie )
источник

VZ

Vasily Zorin in PHP
Дык это кривая реализация же
источник

AL

Alexander Lisachenko in PHP
Правильная реализация - удаляйте элементы начиная с конца
источник

VZ

Vasily Zorin in PHP
Бред =)
источник

AL

Alexander Lisachenko in PHP
Это самый верный путь
источник

AL

Alexander Lisachenko in PHP
Даже в ядре PHP это используют чтобы не сталкиваться с подобного рода проблемами, когда указатель может побиться на следующий элемент в процессе отработки логики метода )
источник

VZ

Vasily Zorin in PHP
Я же скинул фикс который решает эту проблему
источник

DT

Dmitriy Tkachenko in PHP
Vasily Zorin
Я же скинул фикс который решает эту проблему
источник

DT

Dmitriy Tkachenko in PHP
вот норм фикс
источник

VZ

Vasily Zorin in PHP
PHP Warning:  array_reduce() expects parameter 1 to be array, object given in scratch_24.php on line 7
источник

DT

Dmitriy Tkachenko in PHP
😂
источник

DT

Dmitriy Tkachenko in PHP
источник

VZ

Vasily Zorin in PHP
Какое отличие? Стрелочные функции ввели в 7.4
источник

VZ

Vasily Zorin in PHP
Там не хватало iterator_to_array()
источник

VZ

Vasily Zorin in PHP
Но это говённое решение
источник