Как я могу повторить HTML в PHP?

возвращаемое значение level++ будет level и therefore передача level в [1 110]. Это могло быть довольно противной ошибкой, поскольку рекурсия никогда не будет заканчиваться (от того, что показывают DoStuff, всегда передается с тем же значением). Возможно ++level или level + 1 предназначен вместо этого?

level + 1 передаст level + 1 в [1 116] и отпуск level неизменный для остальной части функции.

<час>

постинкрементный оператор (переменная ++) точно эквивалентен функции

int post_increment(ref int value)
{
    int temp = value;
    value = value + 1
    return temp;
}

, в то время как преинкрементный оператор (++ переменная) точно эквивалентен функции

int pre_increment(ref int value)
{
    value = value + 1;
    return value;
}
<час>

Поэтому при расширении оператора, встроенного в код операторы эквивалентны:

DoStuff(a + 1)

int temp = a + 1;
DoStuff(temp);
<час>
DoStuff(++a)

a = a + 1;
DoStuff(a);
<час>
DoStuff(a++);

int temp = a;
a = a + 1;
DoStuff(temp);
<час>

важно отметить, что постинкремент не эквивалентен:

DoStuff(a);
a = a + 1;
<час>

Кроме того, как точка стиля, не нужно увеличивать значение, если намерение не состоит в том, чтобы использовать увеличенное значение (определенная версия правила, "не присваивают значение переменной, если Вы не планируете использование того значения"). Если значение i + 1 никогда не используется снова, то предпочтительное использование должно быть DoStuff(i + 1) а не DoStuff(++i).

119
задан Cyclonecode 21 March 2014 в 01:59
поделиться

6 ответов

There are a few ways to echo HTML in PHP.

1. In between PHP tags

<?php if(condition){ ?>
     <!-- HTML here -->
<?php } ?>

2. In an echo

if(condition){
     echo "HTML here";
}

With echos, if you wish to use double quotes in your HTML you must use single quote echos like so:

echo '<input type="text">';

Or you can escape them like so:

echo "<input type=\"text\">";

3. Heredocs

4. Nowdocs (as of PHP 5.3.0)

Template engines are used for using PHP in documents that contain mostly HTML. In fact, PHP's original purpose was to be a templating language. That's why with PHP you can use things like short tags to echo variables (e.g. ).

There are other template engines (such as Smarty, Twig, etc.) that make the syntax even more concise (e.g. {{someVariable}}).

The primary benefit of using a template engine is keeping the design (Presentation Logic) separate from the coding (Business Logic). It also makes the code cleaner and easier to maintain in the long run.

If you have any more questions feel free to leave a comment. Дополнительную информацию по этим вопросам можно найти в документации PHP .

God Bless!


ПРИМЕЧАНИЕ: короткие теги PHP и ?> не рекомендуется, поскольку они доступны только в том случае, если они включены с помощью директивы файла конфигурации short_open_tag php.ini или если PHP был настроен с параметром - enable-short-tags . Они доступны независимо от настроек, начиная с версии 5.4 .

262
ответ дан 24 November 2019 в 01:42
поделиться

Basically you can put HTML anywhere outside of PHP tags. It's also very beneficial to do all your necessary data processing before displaying any data, in order to separate logic and presentation.

The data display itself could be at the bottom of the same PHP file or you could include a separate PHP file consisting of mostly HTML.

I prefer this compact style:

<?php
    /* do your processing here */
?>

<html>
<head>
    <title><?=$title?></title>
</head>
<body>
    <?php foreach ( $something as $item ) : ?>
        <p><?=$item?></p>
    <?php endforeach; ?>
</body>
</html>

Note: you may need to use instead of depending on your PHP setup.

15
ответ дан 24 November 2019 в 01:42
поделиться

Другой подход заключается в том, чтобы поместить HTML в отдельный файл и в этом случае пометить область, которую нужно изменить, с помощью заполнителя [[content]]. (Вы также можете использовать sprintf вместо str_replace.)

$page = 'hello world';
$content = file_get_contents('html/welcome.html');
$pagecontent = str_replace('[[content]]',$content,$page);
echo($pagecontent);

В качестве альтернативы вы можете просто вывести все данные php на экран, захваченные в буфере, затем написать html, а затем вернуть вывод php на страницу.

Может показаться странным написать php, поймать его, а затем написать снова, но это означает, что вы можете выполнять все виды форматирования (Heredocs и т. Д.) И правильно тестировать его вывод, не беспокоясь о странице шаблон мешает. (Joomla CMS делает это таким образом, BTW) например:

<?php
ob_start();
echo('hello world');
$php_output = ob_get_contents();
ob_end_clean();
?>
<h1> My Template page says </h1>
<?php
echo($php_output );
?>
<hr>
template footer
7
ответ дан 24 November 2019 в 01:42
поделиться

Я неравнодушен к этому стилю:

  <html>
    <head>
<%    if (X)
      {
%>      <title>Definitely X</title>
<%    }
      else
      {
%>      <title>Totally not X</title>
<%    }
%>  </head>
  </html>

Я действительно использую теги в стиле ASP, да. На мой взгляд, смешение PHP и HTML выглядит очень легко читаемым. Хитрость заключается в том, чтобы правильно получить маркеры <% и %> .

7
ответ дан 24 November 2019 в 01:42
поделиться

Вы можете использовать альтернативный синтаксис альтернативный синтаксис для управляющих структур и выйти из php:

<?php if ($something): ?>
    <some /> <tags /> <etc />
    <?=$shortButControversialWayOfPrintingAVariable ?>
    <?php /* A comment not visible in the HTML but is a bit of a pain to write */ ?>
<?php else: ?>
    <!-- else -->
<?php endif; ?>
29
ответ дан 24 November 2019 в 01:42
поделиться

попробуйте вот так:

$variable = <<<XYZ
<html>
<body>

</body>
</html>
XYZ;
echo $variable;
64
ответ дан 24 November 2019 в 01:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: