Php 在执行计算变量值的代码之前,如何回显该变量的值?
我想显示在foreach循环中计算的变量的内容。问题是我想在循环之前回显它Php 在执行计算变量值的代码之前,如何回显该变量的值?,php,arrays,Php,Arrays,我想显示在foreach循环中计算的变量的内容。问题是我想在循环之前回显它 <?php echo $total; // note this line I want to appear the total count of loop. the problem is it cannot appear because it is in the above of foreach loop. I want to appear it in this above before foreach l
<?php
echo $total; // note this line I want to appear the total count of loop. the problem is it cannot appear because it is in the above of foreach loop. I want to appear it in this above before foreach loop.
$total = 0;
foreach($pathList as $item) {
$fileInfo = pathinfo($item);
if(preg_match(strtolower('/\b'.$_POST['song'].'\b/'), strtolower($filename))) {
$total = $total + 1; // the total count of foreach loop I want to appear in echo $total
}
// some code
}
?>
我确实想在循环中回显它,但只在完成循环后回显一次。
你知道我该怎么解决这个问题吗?我尝试了全局$total,但不起作用
提前谢谢 通常-否。您不能回显尚未在PHP中计算同步的变量
如果for循环中有关$total的所有操作都增加了1,那么实际上可以计算数组中的元素数,这样就可以执行以下操作:
echo count($pathList);
在for循环之前。文件
更新:
如果在更新问题时$total在循环中受到影响,那么我认为最佳做法是首先计算数组元素,而不执行任何代码,然后在原始数据上回显$total,然后执行其余代码
$total = 0;
foreach($pathList as $item) {
$fileInfo = pathinfo($item);
if(preg_match(strtolower('/\b'.$_POST['song'].'\b/'), strtolower($filename))) // or what ever condition you have to check for total
$total = $total + 1;
}
echo count($total); // give you the count you need
foreach($pathList as $item) {
// exec the rest of your code
}
这可能在O2*n下运行,但不会更糟,这是不可能的。行是按照它们在脚本中出现的顺序执行的。循环结束时$total的值等于count$pathList的值 如果在执行循环之前需要$pathList的最后一个迭代元素的值,那么它可以作为
echo $pathList[count($pathList)-1];
您可以使用echo$total;在循环结束时。我之前没有看到同样的问题吗?您也可以将结果存储在会话中,然后在循环开始前检索。您需要在循环结束时或数组的最后一个元素处使用$total值?@Umar不知道会话。我想让它出现在循环上方。因为如果我把它放在循环的末尾,它就会出现在页面的按钮上。我会更新我的第一个问题。我无法使用它echo count$pathList;因为在循环内部有一个条件。示例:如果路径列表的总数为100,但在满足条件后变为7。因此,在条件完成后,总结果是7。循环内的回声在完成循环后仅出现一次,如何?谢谢,我照你说的做了,问题解决了。我的问题是,一个foreach循环和两个foreach循环的执行时间相同?这取决于您在那里执行的代码-时间复杂性角度-这两个循环与我的第一个问题相同。在一个循环中有一个条件。我无法使用它echo$pathList[count$pathList-1];因为在循环内部有一个条件。示例:如果路径列表的总数为100,但在满足条件后变为7。因此,条件之后的总结果是7。在这种情况下,您不能在循环之前回显$total的值。如果循环中没有其他echo语句,那么在循环之前和之后回显$total并没有什么区别。