我有一个页面中间有一些foreach循环的页面。在这些foreach中,我在foreachloop的末尾做了一些变量的总和,这个$ var有数据。
现在我想在foreach之前在我的页面顶部显示这些数据,这意味着如果我转储var它是假的还是没有设置...
现在我想知道解决这个问题的最佳方法是什么?
我也可以在顶部做两次相同的foreach来获取数据,但这些问题的最佳做法是什么?
举一个例子
$sum = false;
echo "<center>Sum: {$sum}</center>";
$sum = 0
foreach ($a as $b) {
$sum += $b
}
我理解var是假的,因为循环没有发生,但是对于设计,我想先展示一下..所以我该怎么做,javascrip?
答案 0 :(得分:0)
一种流行的方法是在开始处理实际输出之前操纵变量。要使用您的示例,是的,您可能会在处理数据时运行foreach,然后再次运行以显示它。
对于您的具体示例,它可能不是一个明显的好处,但是一旦您开始处理包含更多数据的较大页面,分割逻辑和显示就会变得更加简单。
处理数据
<?php
$sum = 0;
foreach ($a as $b) {
$sum += $b;
}
?>
显示
<center>Total record(s): <?=$sum?></center>
<?php foreach($a as $b) { ?>
<p>Value: <?=$b?></p>
<?php } ?>
注意:<?=$var?>
的简写语法表示<?php echo $var; ?>
,默认情况下仅从PHP 5.4
开始。
编辑以显示替代
如果您真的只想循环一次,并且很乐意混合您的逻辑和显示,那么您可以在计算总和时构建通常位于循环内部的HTML输出。
<?php
$valuesHtml = "";
$sum = 0;
foreach ($a as $b) {
$sum += $b;
$valuesHtml .= "<p>Value: {$b}</p>";
}
?>
<center>Total record(s): <?=$sum?></center>
<?=$valuesHtml?>