Автор Тема: Вопрос по циклу for  (Прочитано 2219 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Владимир

  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +1/-0
  • Рефералов: 0
    • Просмотр профиля
Вопрос по циклу for
« : 18 Февраля 2010, 23:32:28 »
<?php
$arr
[] = 'aaa';
$arr[] = 'bbb';
$arr[] = 'ccc';
for (
$i 0$i count($arr); $i++)
   echo 
$arr[$i];
?>
Сколько раз будет выполняться функция  count($arr)?
Один раз перед первой итерацией или перед каждой?

Lyric

  • Администратор
  • Новичок
  • *
  • Сообщений: 39
  • Репутация: +7/-0
  • Пол: Мужской
  • Рефералов: 0
    • Просмотр профиля
Re: Вопрос по циклу for
« Ответ #1 : 18 Февраля 2010, 23:42:29 »
Скорей всего перед каждой итерацией.
В примере Вариант 1 работает в три раза дольше, чем Вариант 2<?php
$arr 
= array();
$n 999999;
for (
$i 0$i $n$i++) $arr[$i] = $i;

$st1 getmicrotime();
for (
$i 0$i count($arr); $i++); // Вариант 1
echo getmicrotime() - $st1;

echo 
'<br />';

$st2 getmicrotime();
for (
$i 0$i $n$i++); // Вариант 2
echo getmicrotime() - $st2;

function 
getmicrotime()
{
   list(
$usec$sec) = explode(" "microtime());
   return ((float)
$usec + (float)$sec);
}
?>

Владимир

  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +1/-0
  • Рефералов: 0
    • Просмотр профиля
Re: Вопрос по циклу for
« Ответ #2 : 19 Февраля 2010, 00:25:56 »
Спасибо за быстрый ответ! Реноме +1

Павел

Re: Вопрос по циклу for
« Ответ #3 : 11 Мая 2016, 18:18:16 »
Так в чём же дело? Говорите!

 
Забавный рисунок про Японские сканворды