递增数字不会出错
Incrementing numbers doesn't give an error
为什么这段代码低于 echo 的 2 并且没有给出错误,它只是忽略了 +1+2+3+4
吗?
我搜索过但找不到答案。
<?php
$i = 1;
$i+++1+2+3+4;
echo $i;
那一行:
$i+++1+2+3+4;
说:
- 递增
$i
- 将
$i
pre增量的值加到+1+2+3+4
,但不存储结果任何地方。
因此 $i == 2
.
如果您不希望它被忽略,您应该存储结果:
$i = $i+++1+2+3+4;
一切都很好。您只是忘记了赋值,所以 i
仅受 ++
运算符影响:
<?php
$i = 1;
$x = $i+++1+2+3+4;
echo "{$i} vs "{$x}";
会return
2 vs 11
您永远不会在任何地方分配已完成的操作:
这两个在功能上是等价的:
$i++;
$i = $i + 1;
两者都会将 $i
递增 1,并将递增的值保存在 $i
中
使用 $i+++1+2+3+4
你实际上是在执行
($i++) + 1 + 2 + 3 + 4
也就是
$i = $i + 1;
1 + 2 + 3 + 4; // useless, result not stored anywhere
so 将 $i
加 1,将其保存到 $i
,然后进行其他添加。但是由于那些没有被保存在任何地方,结果被丢弃了。
如果你有
php > $i = 1;
php > $i = $i+++1+2+3+4;
^^^^^----add this
php > echo $i;
11
那么它就会像你预期的那样工作了。
$i++
表示$i
.
加1
和 python 一样,+1+2+3+4
表示将 $i
预增量的值添加到 +1+2+3+4
但不要将其存储在任何地方。(所以没有内存地址或类似的东西。 ..).
所以你得到的只是 $i==2
为什么这段代码低于 echo 的 2 并且没有给出错误,它只是忽略了 +1+2+3+4
吗?
我搜索过但找不到答案。
<?php
$i = 1;
$i+++1+2+3+4;
echo $i;
那一行:
$i+++1+2+3+4;
说:
- 递增
$i
- 将
$i
pre增量的值加到+1+2+3+4
,但不存储结果任何地方。
因此 $i == 2
.
如果您不希望它被忽略,您应该存储结果:
$i = $i+++1+2+3+4;
一切都很好。您只是忘记了赋值,所以 i
仅受 ++
运算符影响:
<?php
$i = 1;
$x = $i+++1+2+3+4;
echo "{$i} vs "{$x}";
会return
2 vs 11
您永远不会在任何地方分配已完成的操作:
这两个在功能上是等价的:
$i++;
$i = $i + 1;
两者都会将 $i
递增 1,并将递增的值保存在 $i
使用 $i+++1+2+3+4
你实际上是在执行
($i++) + 1 + 2 + 3 + 4
也就是
$i = $i + 1;
1 + 2 + 3 + 4; // useless, result not stored anywhere
so 将 $i
加 1,将其保存到 $i
,然后进行其他添加。但是由于那些没有被保存在任何地方,结果被丢弃了。
如果你有
php > $i = 1;
php > $i = $i+++1+2+3+4;
^^^^^----add this
php > echo $i;
11
那么它就会像你预期的那样工作了。
$i++
表示$i
.
加1
和 python 一样,+1+2+3+4
表示将 $i
预增量的值添加到 +1+2+3+4
但不要将其存储在任何地方。(所以没有内存地址或类似的东西。 ..).
所以你得到的只是 $i==2