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

17

В чем разница между

while (expression):

// do stuff

endwhile;

и

while {

}
    
задан redconservatory 10.01.2011 в 21:05
источник

4 ответа

29

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

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

while (expression):
// do stuff
endwhile;

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

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

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

while {

}

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

    
ответ дан Jeff Davis 10.01.2011 в 21:09
источник
6

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

    
ответ дан Sebastian Motraghi 10.01.2011 в 21:07
источник
2

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

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

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

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

ответ дан Jon 10.01.2011 в 21:13
источник
2

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

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

    
ответ дан Brandon Lee 31.07.2011 в 01:10
источник