Есть ли причина использовать ++ $ я в цикле? - PullRequest
1 голос
/ 15 ноября 2010

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

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

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

Ответы [ 5 ]

6 голосов
/ 15 ноября 2010

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

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

Например ...

$i=0;
echo $i++; //0
echo ++$i; //2
3 голосов
/ 15 ноября 2010

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

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

2 голосов
/ 15 ноября 2010

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

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

если вы делаете 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, ...

1 голос
/ 15 ноября 2010

++ $ я ускоряю выполнение php, а также увеличиваю значение в той же строке кода.

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

1 голос
/ 15 ноября 2010

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

...