将HTML转换为PHP或使用Echo?哪个更好?

Wil*_*ild 41 html php performance

在性能方面,什么会更好.使用PHP来回显所有的HTML输出,这样我就可以使用各种工作代码和变量,或者在整个文档中定期将HTML转义为php.

我知道可能存在一些可读性问题,但我并不担心.

谢谢大家!

例1

echo '<html>',
     '<body>',
     'The content of the ',$container,' element is displayed in your ', $other_container,
     '</body>',
     '</html>';
Run Code Online (Sandbox Code Playgroud)

要么

<html>
<body>
The content of the <?php echo $container; ?> element is displayed in your <?php echo $other_container; ?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

nic*_*ckf 34

这就是你发现最具可读性的一切.当然,这会因每种情况而异.如果你正在做整个页面,并且有大部分没有任何PHP,那么我将打破PHP并编写纯HTML,而如果有一个部分有很多PHP变量,我会用PHP完成所有工作.

例如:

<table>
    <tr>
        <td colspan="<?php echo $numCols; ?>">
            <?php echo $a; ?>, <?php echo $b; ?>, and <?php echo $c?>
        </td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

与:

<?php
echo "<table>"
    . "<tr>"
    .    "<td colspan=\"" . $numCols . "\">"
    .        $a . ", " . $b . " and " . $c
    .    "</td>"
    . "</tr>"
    . "</table>"
; ?>
Run Code Online (Sandbox Code Playgroud)

要么

<?php
echo "<table>
         <tr>
            <td colspan='{$numCols}'>
               {$a}, {$b}, and {$c}
            </td>
         </tr>
      </table>";
?>
Run Code Online (Sandbox Code Playgroud)

也别忘了 printf

<?php
printf("<table>"
    . "<tr>"
    .    "<td colspan=\"%d\">%s, %s and %s</td>"
    . "</tr>"
    . "</table>"
    , $numCols
    , $a
    , $b
    , $c
);
?>
Run Code Online (Sandbox Code Playgroud)

  • 你错过了heredoc;) (4认同)

Ste*_*ier 31

无论哪个最容易阅读.

与您遇到的几乎任何其他问题相比,性能差异可以忽略不计.绝对可读性是第一个问题.


Geo*_*lly 22

让我们引用手册:

当然,这里给出的例子是设计的,但是对于输出大块文本,退出PHP解析模式通常比通过echo()或print()发送所有文本更有效.


但请听取其他人的意见,避免这种微观优化,并选择更易读的.

我可以提出第三种解决方案吗?你听说过模板引擎吗?它们可以帮助您在代码和表示之间创建清晰的分隔,这通常可以使代码更清晰,更易于维护.流行的这种模板引擎例如是聪明的,但是有数百种具有不同的优势.


Pao*_*ino 8

这与您使用的应用程序的整体速度无关.

话虽这么说,我知道你说你不在乎,但请使用第二个,因为它大约一百万次阅读更容易.可读性是巨大的.


not*_*ess 8

我不知道这个的性能,但在PHP中你也可以使用我认为被称为"Heredoc"的东西,我认为这有助于在这种输出中的可读性.

尼克的例子:

<table>
    <tr>
        <td colspan="<?php echo $numCols; ?>">
            <?php echo $a; ?>, <?php echo $b; ?>, and <?php echo $c?>
        </td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

变为:

<?php
echo <<<EOT
<table>
    <tr>
        <td colspan="$numCols">
            $a , $b, and  $c
        </td>
    </tr>
</table>

EOT;

?>
Run Code Online (Sandbox Code Playgroud)

我相信最终的可读性是一个主观的东西,所以你的里程可能会有所不同!

怜悯


Óla*_*age 5

它属于微观优化的范畴.您的大部分时间都是初始化PHP引擎开始工作.

因此,除非您订购了数万行(甚至更多),否则您不应该关注它.

要添加,我做了一个百万行的小测试,我使用PHP打印它们,我用PHP调用交互程序做同样的事情,差异是微不足道的.

多一点信息.

第二个例子中发生的事情是你正在"打开/关闭"PHP,它不是正在发生的事情,但是对于这个例子它适合.

你应该更担心的是,代码周围会有很多逻辑吗?我是要将该字符串拆分成更多的字符串,甚至将它放在不同的地方?这是MVC应用程序的视图吗?

对于1和2,它们可能是两种方法之间的折腾.但是对于3,我会因为这些原因而采用方法2.

MVC Web应用程序中的视图主要是html/css.所以我想看到格式正确,我想在我的编辑器中看到html着色.所以这是一个加号.