在连接语句中反转变量,反转输出无法解释


Reversed variables in concatenated statement, reversing output unexplained

这对我来说完全是个谜。我有一个简单的脚本,输出数组中的数字。如下图所示:

<?php
    $numbers = array(1,2,3,4);
    $total = count($numbers);
    $sum = 0;  
    $i = 0;
    foreach($numbers as $count) {
        $i = $i++;
        if ($i < $total) {
            $output = $output . $count;
        }
    }
    echo $output;
?>

数字出来很好(1,2,3,4),但让我困惑的是,当我切换$output变量时,像这样:

if ($i < $total) {
    $output = $count . $output;
}

数字颠倒了!(4,3,2,1)这背后的逻辑是什么?事情就是这样吗?我不能相信这是一个武断的规则,因为它确实存在。

有人能解释一下吗?

代码

$output = $output . $count

您正在将$count中的值连接到$output变量中创建字符串。因此,在每次迭代中,您都将新值

添加到字符串的末尾。

当你反转代码

 $output = $count.$output;

您将新值放在实际字符串之前,因此您将获得前一个字符串的反向