e0xwong 发表于 2011-9-28 22:06:35

php基础问题

最近入手一本细说php
正在照书学习 有段基础代码不甚了解 球赐教
<?php
$a=10;
$b=$a++ + ++$a; //前面的$a++是先算表达式即10+1=11,后面++$a是先递增一再计算表达式即11+1=12(新的$a),$b=(新)$a+$a=12+10=22

echo " $a <br>";
echo " $b<br>";

$b=$a-- - --$a;//前面的$a--是先算表达式即12-1=11,后面--$a是先递减一再计算表达式即11-1=10(新的$a),$b=(新)$a-$a=10-12=-2

echo" $a<br>";
echo "$b<br>";
?>
以上的注释是个人的理解 按这样最后的echo“$b<br>"应该输出的是-2啊,例子和实际运行均显示输出的数字是2.这样看来肯定是我的理解有误!求正解!

湖中沉 发表于 2011-9-28 22:06:36

分别输出
12
22
10
2

e0xwong 发表于 2011-9-29 07:50:48

湖中沉 发表于 2011-9-28 22:39 static/image/common/back.gif
分别输出
12
22


知道是输出那些、
就是不知道为什么最后的输出不是-2而是2
肯定是基础的地方没有理解

想知道为什么算出来是2 而不是负2 因为按我的理解最后一行的结果是负2!
谢谢

e0xwong 发表于 2011-9-29 08:21:36

哈哈 解决了$b=$a++   此时b的值还是10.a在把值赋给b后变成了11.
$b=++$a   此时b的值是12(即先加1再赋值) 所以这样就变成了a=12,   b=22;

$b=$a--   此时b的值还是12.a在把值赋给b后变成了11.
$b=--$a   此时b的值是10(即先减1再赋值) 所以这样就变成了a=10,   b=2(相当于12-10);哈哈 百度知道上问到的 嘿嘿

e0xwong 发表于 2011-9-29 08:23:42

其实很怕这种基础知识没弄清楚的
呵呵 话说 百度娘真是强大啊{:4_91:}
页: [1]
查看完整版本: php基础问题