[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Особенности цикла фор
romantik2011

<?php
$str = 'Hello';

for($i=0,$k = strlen($str); $i<$k; $i++) {
echo $str[$i]. ' ';
}

?>



Меня интересует вот это место:
$i=0,$k = strlen($str);

Слышал что постоянный вызов в цикле одной и той же функции является расходом динамической памяти.
Здесь функция strlen вызывается только один раз или при каждой итерации?
Так вернее писать?



Спустя 17 минут, 25 секунд (8.08.2011 - 17:24) neadekvat написал(а):
Цитата (romantik2011 @ 8.08.2011 - 18:06)
Здесь функция strlen вызывается только один раз или при каждой итерации?

Каждый раз. Правда, не думаю, что такая запись сильно тормозит работу скрипта. Но для очищения совести можно завести для этого новую переменную и ее подставить в цикл.

Спустя 21 минута, 3 секунды (8.08.2011 - 17:45) romantik2011 написал(а):
То есть только в первой итерации выполнится первое условие, то есть начнется отсчёт с нуля в первой итерации и вызовется лишь один единственный раз функция strlen?

Спустя 20 минут, 1 секунда (8.08.2011 - 18:05) jetistyum написал(а):
Эээ нет, тут ф-я strlen вызывается только один раз, т.к. находится в первой группе параметров цикла
$i=0, $k =strlen
тут же у вас не возникает сомнений что $i НЕ обнуляется при каждой итерации.
да и, что ж тут сложного проверить

$i = 0, $k = echo('test');
и увидишь smile.gif

Спустя 2 минуты, 14 секунд (8.08.2011 - 18:07) neadekvat написал(а):
Да, правда за jetistyum. Невнимательно посмотрел на цикл.

Спустя 13 часов, 20 минут, 14 секунд (9.08.2011 - 07:27) linker написал(а):
Это секция инициализации и выполняется один раз.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.