2016-03-22 5 views
0

У меня есть for($i=X ; $i<Y ; ++$i)Эффективно ли включить математические операции в цикл for()? (РНР)

Но у меня есть два варианта для определения X и Y:

1) рассчитать X и Y перед циклом, с использованием двух переменных

2) Я включать математические операции для расчета X и Y внутри для() LOOP

Пример:

for($i = ($id/100)-1) ; $i < ((($id/100)-1)*4)+($range*10) 

Но разумно ли сделать вариант №. 2? Или он будет выполнять математические операции в каждом цикле? Должен ли я вместо этого просто использовать две переменные отдельно? это не очень важно, но почему бы не оптимизировать сценарий настолько, насколько я могу.

Благодаря

+0

Второй момент пуля не является допустимым для утверждения. Но если вы включите код в первый из трех сегментов цикла for, то не будет никакой разницы, как при выводе его на внешний. – Rizier123

ответ

0

Предложение for состоит из трех частей, из которых только первый выполняется один раз. Остальные два оцениваются на каждой итерации (2-й в начале итерации, 3-й в конце итерации).

Так что для этих выражений лучше всего использовать как можно больше до цикла for.

Так что это было бы хорошо:

$div100 = ($id/100)-1; 
$end = $div100*4 + $range*10; 
for ($i = $div100; $i < $end; $i++) { 
    // ... 
} 

И это также:

$end = $e+$f*$g; 
for ($i = $a+$b*$c; $i < $end; $i++) { 
    // ... 
} 
+0

ОК, вот что я искал. ура – Temps

Смежные вопросы