Распространенная ошибка при применении цикла for для массивов в PHP
В следующем коде подсчет элементов массива вынесен в условие цикла:
<?php
$arr = [1, 2, 3, 4, 5];
for ($i = 1; $i < count($arr); $i++) {
echo $arr[$i];
}
?>
На первый взгляд кажется, что этот код лучше,
так как мы избавились от лишней переменной
$length
. На самом деле это не так.
Дело в том, что в приведенном коде функция
count
будет заново подсчитывать количество
элементов массива каждую интерацию цикла.
Это не оптимально.
В следующем коде некоторый программист находит сумму всех элементов массива, кроме нулевого:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8];
$sum = 0;
for ($i = 1; $i < count($arr); $i++) {
$sum += $arr[$i];
}
echo $sum;
?>
Что не так с этим кодом? Исправьте ошибку автора кода.