Подтвердить что ты не робот

Php: какая разница между... endwhile; и в то время как {//здесь}

Какая разница между

while (expression):

// do stuff

endwhile;

и

while {

}
4b9b3361

Ответ 1

Функциональной разницы нет.

В практическом использовании я нахожу, что:

while (expression):
// do stuff
endwhile;

Более читабельна для дизайнеров, когда вы встраиваете PHP-код в html. IE:

<? while ($cssClass = array_pop($array)): ?>
   <li class="<?=$cssClass?>">
<? endwhile; ?>

В то время как:

while {

}

Более читаем внутри блока php-кода.

Ответ 2

Нет никакой разницы, это сводится к личным предпочтениям.

Ответ 3

Нет никакой реальной разницы при написании кода.

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

В этом случае тот факт, что while... endwhile; избегает использования фигурных скобок, может позволить вам упростить ваш алгоритм синтаксического анализа, если, например, он распознает переменные, которые должны быть заменены синтаксисом типа {$var}, который также использует фигурные скобки.

Конечно, это очень небольшое преимущество в действительно необычной ситуации, но вы берете то, что можете.:)

Ответ 4

Разница незначительна, когда код действительно запущен, но при кодировании я считаю, что набрав скобки (1): быстрее, (2): более условно и (3): позволяет уменьшить вероятность ошибки (endwhle кто-нибудь?).

В качестве бонуса редактор, который я использую для автоматического форматирования циклов while (с помощью скобок, по умолчанию) и по дороге, если что-то выключено, встроенная функция сопоставления скобок поймает его.

Ответ 5

Просто предпочтение, но я обычно комментирую конец блоков кода:

while($myvarb){

   do_stuff();

   do_more_stuff();
   ...

} // end while myvarb