php - 分离 php 和 html... 为什么?

所以我在各种网站、页面上看到了一些评论,以及我提出的关于分离 php 和 html 的问题。

我认为这意味着这样做:

<?php

myPhpStuff();

?>

<html>

<?php

morePhpStuff();

?>

而不是:

<?php

    doPhpStuff();

    echo '<html>';

    ?>

但为什么这很重要?这样做真的很重要还是一种偏好?


当我开始使用 PHP 时,似乎在 while 循环中中断 PHP 之类的操作会导致错误。也许这不再是真的,或者从来都不是。


我用这个概念做了一个小例子,但对我来说它看起来很乱:

<?php

$cookies = 100;
while($cookies > 0)
{
    $cookies = $cookies -1;
?>
    <b>Fatty has </b><?php echo $cookies; ?> <b>cookies left.</b><br>

<?php

} 

?>

是否存在将 HTML 放在 PHP 中更好的情况?

<?php

$cookies = 100;
while($cookies > 0)
{
    $cookies = $cookies -1;

    echo'<b>Fatty has </b> '.$cookies.' <b>cookies left.</b><br>';
} 

?>

最佳答案

当人们谈论分离 PHP 和 HTML 时,他们可能指的是将网站的呈现与用于生成它的代码分离的做法。

例如,假设您有一个 DVD 租赁网站,并且在主页上显示了可用 DVD 的列表。您需要做几件事:从数据库中获取 DVD 数据,提取和/或格式化该数据,并可能混合来自多个表的一些数据。格式化输出,将 DVD 数据与 HTML 相结合,创建用户将在浏览器中看到的网页。

将 HTML 生成与其余代码分开是一种很好的做法,这意味着您可以轻松更改 HTML 输出(表示),而无需更改业务逻辑(数据的读取和操作)。反之亦然,您可以更改您的逻辑,甚至您的数据库,而无需更改您的 HTML。

一种常见的模式称为 MVC (model view controller) . 您可能还想查看 Smarty 库 - 它是一个广泛使用的 PHP 库,用于分离表示和逻辑。

https://stackoverflow.com/questions/931677/

相关文章:

LaTeX - 在序列中每个新行的开头添加不同数量的水平间距

java - 如何将 LocalDate 对象格式化为 MM/dd/yyyy 并保持格式不变

python - 编码风格 - 将括号保持在同一行或新行上?

jsp - 如何将变量设置为小数点后 2 位

android - 使用数据绑定(bind)时从 getTimeInMillis 获取日期

regex - 删除 Notepad++ 中的第一列

javascript - 使用 jQuery 在输入框中显示一个小数点后 2 位的值,同时保持更高的

python - 如何获得小时 :minutes

java - 为什么使用 Java SimpleDateFormat 会减少一个月?

c - C中孤花括号代码块的含义