<?php
$b=1;for($i=1;$i<4;$i++){
$b=$b++;
echo $b;
echo "<hr/>";
}?><?php $b=1;for($i=1;$i<4;$i++){
$a=$b++;
echo $a;
echo "<hr/>";
}?>
<?php
$b=1;for($i=1;$i<4;$i++){
$b=++$b;
echo $b;
echo "<hr/>";
}?>
<?php $b=1;for($i=1;$i<4;$i++){
$a=++$b;
echo $a;
echo "<hr/>";
}?>
这四个运行结果 分别为1、1、1
1、2、3、
2、3、4
2、3、4
第一个结果 和第三个结果 我有些搞不请请问下大家机制原理
$b=1;for($i=1;$i<4;$i++){
$b=$b++;
echo $b;
echo "<hr/>";
}?><?php $b=1;for($i=1;$i<4;$i++){
$a=$b++;
echo $a;
echo "<hr/>";
}?>
<?php
$b=1;for($i=1;$i<4;$i++){
$b=++$b;
echo $b;
echo "<hr/>";
}?>
<?php $b=1;for($i=1;$i<4;$i++){
$a=++$b;
echo $a;
echo "<hr/>";
}?>
这四个运行结果 分别为1、1、1
1、2、3、
2、3、4
2、3、4
第一个结果 和第三个结果 我有些搞不请请问下大家机制原理
解决方案 »
- unserialize 返回空
- 一个留言板的 删除功能有点问题
- 对象继承 是怎么用的
- PHP组件PHP_iconv.dll的配置问题
- 请问各位高手 关于使用imagettftext函数向图片上写文字的问题
- 高分请教——phpMyAdmin v2.6.2管理MYSQL出错
- 长跪求助:如何用PHP SHOW一个信息窗口?
- 请教:form的属性enctype的具体含义!
- 一个初学的Mysql问题!
- PHP读写文件的小小问题
- echo "<td>"."<a href='list.php&id="$row[id]"'>".$row[names]."</a>"."</td>";
- setcookie domain参数的问题
所谓前增量运算符,就是数值上加 1,形式是在变量前放两个加号(++):var iNum = 10;
++iNum;第二行代码把 iNum 增加到了 11,它实质上等价于:var iNum = 10;
iNum = iNum + 1;
在使用前缀式运算符时,注意增量和减量运算符都发生在计算表达式之前。后增量/后减量运算符后增量运算符也是给数值上加 1,形式是在变量后放两个加号(++):与前缀式运算符不同的是,后缀式运算符是在计算过包含它们的表达式后才进行增量或减量运算的。
理解上面的东西就行了
iNum--;
alert(iNum); //输出 "9"
alert(iNum--); //输出 "9"
alert(iNum); //输出 "8"
只要是赋值$b=$b++ $b=++b 就搞不清了 其实这个考察基础知识点不是前置和后置的问题!
难道不是我说的 牵制和后置的问题吗?
你把 $b=$b++ 想成 $a=$b++ 有什么区别吗?
<?php
$b=1;for($i=1;$i<4;$i++){ //循环了3次
$b=$b++;//在后置之前把$b的值1 赋值给 $b.那么$b=1;
echo $b;//这里输出自然就是1
echo "<hr/>";
} 另外一个不需要我解释了吧?
$b 原始值=1 在每次后置之前都重新赋值等于1 然后输出这个值 循环了三次 所以输出了3个1?>
我的理解
$b=1++分解: $b=1
后置算法
我的理解
$b=1++分解: $b=1
后置算法 1++
$b=2
$b=1;
$b=$b++;
echo $b;//$b=1;后置 在赋值之后做的运算。在echo 之前他做的运算 ,他只运算,但已经不再赋值了,他运算不影响结果.这能看懂?
所以你$b 换成$a结果就不同了.
$b=$b;
$b++;这样能知道什么是后置了吧?
这样的话,第3个就很好理解了。第1个有点意思,似乎是$b经赋值后,不再是原来那个$b了,所以$b++无效?完全不是$b=$b;$b++;这样算的,看看先。
========
想过了,还不是这样。$b=$b++的过程是这样:
先执行$b这个表达式,这样表达是的值是1;再执行$b++,这时$b的值是2;再给$b赋值,注意,这时赋的值是原来已经计算出的$b这个表达式,于是$b的值回到1。用$b=$b++ + $b++,结果是3 7 15就比较明显的看出来。