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

时间:2019-01-17 05:35:04

标签: 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 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
    }
?>

我确实想在循环内回显它,但是在完成循环后只回显一次。 知道如何解决这个问题吗?我尝试了global $total,但是没有用...

谢谢!

3 个答案:

答案 0 :(得分:2)

通常-。您不能回显尚未计算的变量(PHP中的同步)。

如果您在union中所做的关于for-loop的所有操作都增加了1,则您实际上会计算数组中元素的数量,因此可以执行以下操作:

$total

echo count($pathList); 之前。 here

中的文档

已更新

如果for-loop在循环中受到影响(在您更新问题时),那么我认为最佳实践将是首先对数组元素进行计数(不执行任何其他代码),然后回显$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 } 上运行,但并不更糟

答案 1 :(得分:1)

不可能。行以它们在脚本中出现的顺序执行。

答案 2 :(得分:0)

循环结束时$ total的值等于count($ pathList)的值

如果在执行循环之前需要$ pathList的最后一个迭代元素的值,则可以将其回显为

echo $pathList[count($pathList)-1];