Есть ли причина использовать ++$ я в цикле?

У меня есть следующий код для цикла

for ($i=0; $i<=(count($subusers)-1); ++$i) {

есть ли причина использовать ++$i вместо $i++, если последний делает то же самое?

5 ответов

Решение

++$i - это микрооптимизация, она выполняется немного быстрее, чем $ i ++. Однако, если массив $ subusers не изменяется в цикле, чтобы число ($ subusers) могло изменяться от одной итерации к следующей, то любое небольшое положительное увеличение скорости сводится на нет (а затем и некоторое) путем подсчета количества массивов. Записи каждой итерации.

Обратите внимание, что $ i ++ и ++$i будут выполняться в конце каждой итерации цикла. Это не то же самое, что инициализация $ i для 1, а не для 0.

В цикле for это не имеет значения, поскольку вы ничего не делаете с возвращаемым значением.

Однако вы все равно должны заметить разницу между ++$i а также $i++что это $i++ возвращается $i а также ++$i возвращается $i+1,

Например...

$i=0;
echo $i++; //0
echo ++$i; //2

В этом случае нет разницы, потому что вы находитесь в цикле.

Я бы посоветовал вам немного почитать о постах и ​​предварительных приращениях, так как это всегда один из любимых вопросов в интервью ^^

если вы делаете i ++, сначала используется значение i, а затем увеличивается

если вы делаете ++ i, i увеличивается, то используется

например int i = 0; while (aBool){ print (i++); } покажет 0,1,2,3,4,...

как

int i = 0; while (aBool){ print (++i); } покажет 1,2,3,4,5,...

Нет, в данном случае это только стилистика. Может быть, кто-то просто хотел использовать оператор предварительного увеличения за один раз.

++$ Я быстро выполняю php, а также добавляю что-то в одну строку кода.

эта ссылка может быть полезной: - http://ilia.ws/archives/12-PHP-Optimization-Tricks.html

Другие вопросы по тегам