Php: какая разница между... endwhile; и в то время как {//здесь}
Какая разница между
while (expression):
// do stuff
endwhile;
и
while {
}
Ответы
Ответ 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