режимы php выходят из php или нет - PullRequest
2 голосов
/ 31 мая 2009

Я задал еще один вопрос о разделении HTML и PHP, так как видел ссылки на него на страницах учебника и примеров, но обнаружил, что разделение HTML и PHP отличается от того, что на самом деле комментируют люди, и я думаю, что это режимы PHP .

Это прорыв из PHP или нет. Это должно быть сделано? Это важно?

Является ли предпочтительным выводить мой вывод в формате HTML или мне нужно отобразить его?

Пример:

<?php

echo '<html'>;

?>

против

<?php

dostuff();

?>

<html>

<?

morestuff();

?>

Ответы [ 3 ]

1 голос
/ 31 мая 2009

Я полагаю, под "прорывом" вы подразумеваете:

<?php foo(); ?>
test
<?php bar(); ?>

в отличие от

<?php
    foo();
    echo("test");
    bar();
?>

Что ж, одним из преимуществ первого решения является то, что ваш макет все еще более или менее читабелен в редакторах HTML. Также он разделяет макет и логику, по крайней мере, больше, чем в другом варианте. Вероятно, это также немного быстрее, чем второй вариант, потому что нет необходимости анализировать и выводить строки. С другой стороны, наличие тонны и тонны отдельных PHP-блоков может быть действительно трудно читать, потому что вещи, которые семантически связаны, внезапно разделяются. Конечно, вы также можете комбинировать оба подхода.

Я думаю, что суть здесь в том, что как только вам понадобится так много форматирования и эхо, что логика вашей программы станет действительно неясной, вам следует подумать об использовании «настоящего» механизма шаблонов.

1 голос
/ 31 мая 2009

Я думаю, это зависит от ситуации.

сколько строк вы хотите отобразить в браузере? строки содержат значения переменной $? $ массив значений? Вы проходите через набор данных? и т. д.

На мой взгляд, большую часть времени можно просто повторять линии.

<?php
   if ( check($something) ) {
      echo "Some variable is: $something<br/>\n";
   } else {
      echo "Some variable is something else!<br/>\n";
   } 
?>

может быть более читабельным, чем:

<?php
   if ( check($something) ) {
?>
Some variable is: <?php echo $something; ?><br/>
<?php
   } else {
?>
Some variable is something else!<br/>
<?php
   } 
?>

и с некоторыми IDE (или, например, stackoverflow.com syntaxhighlighting), он может быть даже более удобочитаемым для использования:

<?php
   if ( check($something) ) {
      echo 'Some variable is: '.$something."<br/>\n";
   } else {
      echo "Some variable is something else!<br/>\n";
   } 
?>

В итоге:
PHP предлагает вам множество вариантов отправки контента вашему клиенту.
«Лучший метод» отличается от случая кейса.

Выберите метод, который является наиболее читаемым / поддерживаемым и , используйте его последовательно.

0 голосов
/ 31 мая 2009

Если под прорывом вы имеете в виду такие вещи:

<?php
     if($somecondition) {
?>
<!-- Some HTML -->
<?php
     } 
?>

Тогда да, разбивание лучше в большинстве случаев, так как оно более читабельно (многие IDES выделяют синтаксис HTML, и не могут этого сделать, если при выводе echo () ed) используется строка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...