为什么即使在do-while-PHP循环中使用了++操作符,变量的默认值在第一次迭代中仍然保持不变?
假设我有以下代码:为什么即使在do-while-PHP循环中使用了++操作符,变量的默认值在第一次迭代中仍然保持不变?,php,loops,do-while,Php,Loops,Do While,假设我有以下代码: <?php $i = 1; $user_login = "some_name"; do { $user_login_tmp = $user_login . "_" . ($i++); echo $user_login_tmp . "\n"; } while ($i<10); ?> 如图所示,可点击!,第一个回声回荡着某个名字。 这对我来说似乎有点奇怪,因为那里有$i++
<?php
$i = 1;
$user_login = "some_name";
do {
$user_login_tmp = $user_login . "_" . ($i++);
echo $user_login_tmp . "\n";
} while ($i<10);
?>
如图所示,可点击!,第一个回声回荡着某个名字。
这对我来说似乎有点奇怪,因为那里有$i++。
为什么第一个输出不是…\u 2?我错过什么了吗
我试图在do while循环的PHP手册页面中寻找答案,但在那里找不到我的答案…使用$I++,在获得$I的值后,++发生。相反,++$i首先递增,然后返回新值。$i++是后期递增。这意味着增量发生在获取值之后。您可以使用+++$i进行预增量,其中增量发生在获取值之前
通常,大多数程序员喜欢使用预增量,除非需要后增量。因为只需要一个值,所以它们往往稍微便宜一些。对于预增量,您必须在执行增量时保留旧值,这使得它稍微更昂贵。$i++正在使用post运算符。连接$i后,将对其进行计算。$i++执行post递增,返回变量,然后递增1 您描述的行为可以通过使用pre increment:+$i来实现。$i++Post increments,它的意思是:返回$i,然后将$i递增1 如果将代码更改为+++$i,演示的输出将以…_2开始 查看PHP.net页面中有关递增运算符的内容: 查看有关后减量和预减量运算符的示例。
++$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.