gpt4 book ai didi

php - 将 PHP 代码与 HTML 输出分离

转载 作者:太空宇宙 更新时间:2023-11-04 14:48:05 24 4
gpt4 key购买 nike

我经常听到人们建议(我自己也做过几次)将事物分开:PHP 代码在这里,HTML 在那里,外部 CSS,外部 JS 等等。

除了明显的可读性和维护优势之外,这样做还有其他强大的优势(例如,在服务器负载或页面处理时间方面)吗?

作为一个简单的例子,假设我们想要实现一个包含我们从数据库中读取的一些产品的表。

我们想要的输出是这样的

<div class="description">This table lists all our products</div>
<table class="products">
<tr>
<th>Name</th>
<th>Available</th>
<th>Price</th>
</tr>
<tr>
<td>Prod 1</td>
<td>Yes</td>
<td>$100</td>
</tr>
...
...
</table>
<div class="info">Some generic info on the products here</div>

所以这里我们有一些静态输出(2 个 div 元素和表格标题)和一些动态输出(实际表格内容)。

我们可以将所有静态内容从 PHP 标签中移除,并尝试仅在需要的地方保留 PHP

 <div class="description">This table lists all our products</div>
<table class="products">
<tr>
<th>Name</th>
<th>Available</th>
<th>Price</th>
</tr>
<?
for ($p=0; $p<count($products); $p++)
{
echo '<tr>';
echo '<td>'.$products[$p]["name"].'</td>';
echo '<td>'.$products[$p]["availability"].'</td>';
echo '<td>'.$products[$p]["price"].'</td>';
echo '</tr>';
}
?>
</table>
<div>.....</div>

另一方面,我们可以将所有内容嵌入 PHP

 <?
echo '<div class="description">This table lists all our products</div>';
echo '<table class="products"><tr><th>Name</th>'.
'<th>Available</th><th>Price</th></tr>';

for ($p=0; $p<count($products); $p++)
{
echo '<tr>';
echo '<td>'.$products[$p]["name"].'</td>';
echo '<td>'.$products[$p]["availability"].'</td>';
echo '<td>'.$products[$p]["price"].'</td>';
echo '</tr>';
}

echo '</table>';
echo '<div>.....</div>';

选择一个而不是另一个的原因是什么?

最佳答案

alternative syntax for control structures对我来说似乎更具可读性:

<div class="description">This table lists all our products</div>
<table class="products">
<tr>
<th>Name</th>
<th>Available</th>
<th>Price</th>
</tr>
<?php foreach($products as $p): ?>
<tr>
<td><?php echo $p["name"]; ?></td>
<td><?php echo $p["availability"]; ?></td>
<td><?php echo $p["price"]; ?></td>
</tr>
<?php endforeach; ?>
</table>
<div class="info"><?php echo $info; ?></div>

关于php - 将 PHP 代码与 HTML 输出分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4482582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com