Распространенная ошибка при применении цикла 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; ?>

Что не так с этим кодом? Исправьте ошибку автора кода.



Чат с GPT Компилятор