Php 在执行计算变量值的代码之前,如何回显该变量的值?

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

我想显示在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 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并没有什么区别。