Php 递增的数字不会';不要出错
为什么这段代码低于echo的2,并且没有给出错误,它只是忽略了Php 递增的数字不会';不要出错,php,numbers,increment,Php,Numbers,Increment,为什么这段代码低于echo的2,并且没有给出错误,它只是忽略了+1+2+3+4 我搜索过了,但找不到答案 <?php $i = 1; $i+++1+2+3+4; echo $i; 那一行: $i+++1+2+3+4; 说: 增量$i 将$i预增量的值添加到+1+2+3+4,但不要将结果存储在任何位置 因此,$i==2 如果不希望忽略它,则应存储结果: $i = $i+++1+2+3+4; 一切都很好。您刚刚忘记了赋值,因此i仅受++运算符的影响: <?php $i = 1;
+1+2+3+4
我搜索过了,但找不到答案
<?php
$i = 1;
$i+++1+2+3+4;
echo $i;
那一行:
$i+++1+2+3+4;
说:
- 增量
$i
- 将
$i
预增量的值添加到+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}";
您从未将已完成的操作分配到任何位置:
这两者在功能上是等效的:
$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
因此,将$i
增加1,将其保存到$i
,然后进行其他添加。但由于这些数据没有被保存在任何地方,结果就被扔掉了
如果你有
php > $i = 1;
php > $i = $i+++1+2+3+4;
^^^^^----add this
php > echo $i;
11
然后它就会如您所期望的那样工作。$i++
意味着将1添加到$i
与python一样,+1+2+3+4
意味着将$i
的预增量值添加到+1+2+3+4
中,但不要将其存储在任何地方。(因此没有内存地址或类似的东西…。
所以你得到的只是$i==2
php > $i = 1;
php > $i = $i+++1+2+3+4;
^^^^^----add this
php > echo $i;
11