我有几个大的(200多行)html我需要放在一个变量中,在循环中多次使用。逃避这个并且保持格式清洁变得非常混乱。无论如何设置像这个IF语句的变量?
<?php if($condition): ?> <p>html here</p> <?php endif; ?>
我知道它可能与外部文件有关,但我不想添加一系列包含来实现此目的。
答案 0 :(得分:10)
使用heredoc表示法:
$html = <<<HTML
<div class="section">
<h2>Header</h1>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</div>
HTML;
不用担心特殊字符,您可以根据需要重复使用该变量。
答案 1 :(得分:1)
您也可以使用heredocs逐字存储字符串。
答案 2 :(得分:0)
像往常一样使用花括号。
<?php if($condition) { ?> <p>html here</p> <?php } ?>
这也适用于循环等
<?php foreach($results as $record) { ?>
<p>html <?php echo $record['title']; ?>here</p>
<?php } ?>
答案 3 :(得分:0)
不确定。看看这里:“Embedding PHP in HTML”
<?php if(conditions): ?>
... HTML CODE ...
<?php endif; ?>
答案 4 :(得分:0)
如果您因任何原因需要将HTML分配给变量,还可以考虑使用heredoc或nowdoc http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc
答案 5 :(得分:0)
这是一个极端的解决方案,但如果我正确理解你的问题,你可以使用输出缓冲。
<?php ob_start(); if($condition): ?> <p>html here</p> <?php endif; $var = ob_get_clean(); ?>
虽然我不建议在变量中存储大量的测试。