Php 递增字符串以产生意外结果
我只是在玩PHP,有人能告诉我为什么下面的代码打印5566而不是6666吗Php 递增字符串以产生意外结果,php,increment,Php,Increment,我只是在玩PHP,有人能告诉我为什么下面的代码打印5566而不是6666吗 $a = 5; $b = $a; echo $a++ . $b++; echo "\n"; echo $a++ . $b++; 它是否回显$a,然后向其添加1?为什么它与结果不一致 编辑: 另一个供任何人查看的简单示例: $a = 5; $b = $a++; echo $a++ . $b; 产生65它应该会发出回声 55 66 因为当您将++放在(后缀)之后时,增量是在执行station之后完成的。如果你愿意
$a = 5;
$b = $a;
echo $a++ . $b++;
echo "\n";
echo $a++ . $b++;
它是否回显$a,然后向其添加1?为什么它与结果不一致
编辑:
另一个供任何人查看的简单示例:
$a = 5;
$b = $a++;
echo $a++ . $b;
产生
65
它应该会发出回声
55
66
因为当您将++
放在(后缀)之后时,增量是在执行station之后完成的。如果你愿意
66
66
那就做吧
$a = 5;
$b = $a;
echo ++$a . ++$b;
echo "\n";
echo $a++ . $b++;
它是一个
POST-INCREMENT运算符
,因此该值首先被使用(即5),然后递增,得到5566
echo $a++ . $b++; // echo 55 and then a becomes 6 , b becomes 6
echo "\n";
echo $a++ . $b++; // echo 66
在您的代码中,在first echo中,它返回
$a
的值,之后它的增量类似于$b
以下是$a++说明:
++$a Pre-increment Increments $a by one, then returns $a.
$a++ Post-increment Returns $a, then increments $a by one.
--$a Pre-decrement Decrements $a by one, then returns $a.
$a-- Post-decrement Returns $a, then decrements $a by one.
希望这将有助于你理解
同时检查以下问题:
因为$a++是增量后的,所以它返回值,然后增加值 尝试: 这和
$a++;
$b++;
echo $a . $b;
echo "\n";
echo $a . $b;
$a++
$b++;
当您首先执行后增量时,返回值,然后将其递增1,这就是为什么会得到这样的结果 如果您先进行预增量运算,将$a的值相加,然后返回,因为您将看到66和77
echo ++$a . ++$b;
将按您的预期打印66
注意递增/递减前的速度比post快,这就是为什么如果不需要在递增/递减前先显示值,请使用它
莫洛弗,如果你使用参考资料
$a = 5;
$b = &$a;
echo $a++ . $b++;
它将输出56
及
将输出77:)使用预增量运算符5566是此处的预期输出。echo$a++先打印$a,然后增加值,而echo++$a将先增加$a,然后打印:)
$a = 5;
$b = &$a;
echo $a++ . $b++;
$a = 5;
$b = &$a;
echo ++$a . ++$b;