Массивы (часть 1, использование массивов как списков)
Как бы мы не хотели использовать только объекты, это удобно далеко не всегда, да и часто может являться оверинженирингом. На помощь приходят любимые массивы. Вот некоторые рекомендации, которые могут помочь при использовании массивов в виде списков:
❗️Все элементы массива должны быть одного типа
Это касается как использования объектов внутри списков, так и простых типов (int, string и т.д.).
❗️Старайтесь не использовать индекс вашего списка.
Не стоит полагаться на индексы, которые автоматически генерирует PHP или использовать их напрямую. Вам должно быть достаточно того, что массив итерируемый (
❗️Вместо удаления элементов используйте фильтр.
Это правило вытекает из предыдущего. Вы можете удалить элементы из списка по их индексу (
Эти правила помогут вам избавиться от лишних
#php #array #junior #source
Как бы мы не хотели использовать только объекты, это удобно далеко не всегда, да и часто может являться оверинженирингом. На помощь приходят любимые массивы. Вот некоторые рекомендации, которые могут помочь при использовании массивов в виде списков:
❗️Все элементы массива должны быть одного типа
@var array <TypeOfElement>. Это касается как использования объектов внутри списков, так и простых типов (int, string и т.д.).
❗️Старайтесь не использовать индекс вашего списка.
Не стоит полагаться на индексы, которые автоматически генерирует PHP или использовать их напрямую. Вам должно быть достаточно того, что массив итерируемый (
foreach) и его кол-во элементов можно посчитать (count()). Следовательно нужно стараться избегать конструкции for.❗️Вместо удаления элементов используйте фильтр.
Это правило вытекает из предыдущего. Вы можете удалить элементы из списка по их индексу (
unset()), но вместо этого лучше использовать array_filter() для создания нового списка без нежелательных элементов. Также не нужно использовать флаги, которые позволяют внутри array_filter() работать с индексами.Эти правила помогут вам избавиться от лишних
if, повысят читабельность и предсказуемость, а что нам еще надо то? :)#php #array #junior #source