我可以在 PHP 中使用 {} 来保存我的 HTML 缩进吗

Can i use {} in PHP for save my HTML indent

我用 PHP 语法编写 HTML 代码,需要保存 HTML 缩进

我使用 ‍‍‍‍{ ... } 来完成这项工作。

恐怕这不是保存缩进的正确方法

而且下个版本可能会不支持或者会导致某处出错

虽然我没遇到过问题

<?php 
$html = '';

$html .= '<div class="a">';
{
    $html .= '<div class="b">';
    {
        $html .= '<div class="c">';
        {
            $html .= 'Hello world';
        }
        $html .= '</div>';
    }
    $html .= '</div>';
}
$html .= '</div>';

echo $html;
?>

我可以使用这种方式来保存 HTML 缩进吗?

这是您使用 PHP heredoc 的示例。您可以在 official documentation 中阅读有关它们的信息。

示例:

<?php
    
$html = <<<END
<div class="a">
    <div class="b">
        <div class="c">
            Hello world
        </div>
    </div>
</div>
END;
  
echo $html;

结果:

<div class="a">
    <div class="b">
        <div class="c">
            Hello world
        </div>
    </div>
</div>

用大括号没问题。在 PHP 中,它们在具有 ifwhile 等时很有用。但我建议使用以下两种格式,使您的代码更具可读性。

1st:在这种格式中,意图将包含在 HTML 文件中。

$html = 
'<div class="a">
    <div class="b">
        <div class="c">
            Hello world
        </div>
    </div>
</div>';

第二:在这种格式中,意图仅在 PHP 文件中。

$html = 
'<div class="a">' .
    '<div class="b">' .
        '<div class="c">' .
            'Hello world' .
        '</div>' .
    '</div>' .
'</div>';

最好单独存放html个模板

<div class="a">
    <div class="b">
        <div class="c">
            <?php echo $text ?>
        </div>
   </div>
</div>

此示例将输出 HTML 文本“Hello world”:

<?php
$text = 'Hello world';
include 'template.php';

您还可以使用输出缓冲将生成的 html 存储到变量中:

<?php 
$text = 'Hello world';
ob_start();
include 'template.php';
$html = ob_get_clean();

如果你不想使用 include,你可以记住 php 本质上是一个模板引擎并编写类似的东西:

<?php
$text = 'Hello world';
//ob_start();
?>
<div class="a">
    <div class="b">
        <div class="c">
            <?php echo $text ?>
        </div>
   </div>
</div>
<?php
// $html = ob_get_clean();