我应该更喜欢其中一个片段而不是其他片段吗?
1
function render()
{
echo "<div>$content</div>";
}
2
function render()
{
?>
<div><?= $content ?></div>
<?php
}
答案 0 :(得分:8)
两者都不是个好主意。 原因功能是输出。尝试这样做:
function render( $content_, $style_ )
{
$res = "<div{$style_}>$content_</div>";
return $res;
}
...
然后:
echo render( "Content inside div", " style='color:red;'" )
原因:
答案 1 :(得分:6)
作为一般规则,最好将构成应用程序的每个文件的内容尽可能保持整洁。由于PHP是一种模板语言,并且您可以将PHP文件用于完全不同的目的(考虑到包含纯HTML的文件是有效的PHP文件),我的个人偏好是:
如果您需要在代码中创建一小部分HTML,请不要打开和关闭PHP标记。
例如,更喜欢这个:
function render()
{
echo "<div>$content</div>";
}
对此:
function render()
{
?><div><?= $content ?></div><?php
}
另请注意,在上面的代码片段中,我没有在PHP关闭标记之后或PHP开放标记之前包含任何空格;通常,HTML中的空格并不重要,但在两种情况下它可能很重要:
如果你想在HTML中包含这种空格,那么在任何情况下你的源代码都会有点丑陋,但如果你采用close / open标签方法肯定会更加丑陋。
在视图中隔离大块HTML,并根据需要包含一些逻辑。
例如,更喜欢这个:
<body>
<div id="blah">
<ul id="nav">
<?php foreach ($navItems as $url => $title) : ?>
<!--
NOTE:
You can opt to make the line below a single echo statement
in PHP rather than HTML with values from PHP substituted
in various places inside, and in this example it might even
be better. However, if the output for each item is more complex
than a li/a pair, it will be far more readable in this form.
-->
<li><a href="<?php echo $url ?>"><?php echo $title ?></a></li>
<?php endforeach; ?>
对此:
$output = '<body><div id="blah"><ul id="nav">';
foreach ($navItems as $url => $title) {
$output .= '<li><a href="'.$url.'">'.$title.'</a></li>
}
echo $output;