php表达式非常小的问题

来源:百度知道 编辑:UC知道 时间:2024/06/12 11:28:30
<?php
function double($i)
{
return $i*2;
}
$b = $a = 5;
$c = $a++;
$e = $d = ++$b;
$f = double($d++);
$g = double(++$e);
$h = $g += 10;

echo $f."<br>",
$g."<br>",
$h."<br>";

?>
上面这段php程序语句输出的为什么是:“12<br>24<br>24<br>”。
而不是“14<br>26<br>26<br>”。在程序的第八行中不是已经把$d定义为7了么?怎么$f会输出“2*6=12”,而不是"2*7=14"。

$b = $a = 5;//$a=5,$b=5
$c = $a++;//$c=$a=5,$a++,$a=6
$e = $d = ++$b;//++$b,$b=6,$d=$b=6,$e=$d=6
$f = double($d++);//$f=double($d)=2*6=12,$d++,$d=7
$g = double(++$e);//++$e,$e=7,$g=double($e)=2*7=14
$h = $g += 10;//$g+=10 ,$g=$g+10= 24 ,$h=$g=$24

++$a是先自增后使用
$a++是先使用后自增!

看样子你还没有明白运算符号当中$d++与++$d的区别啦;
例如:$d=5,$a=$d++,则此时变量a的值是,变量d的值是6,而如果是$a=++$d,则此时变量a与变量d的值都是6,明白了吧?搞清楚这个问题啦,就会明白你刚刚提的问题啦。

++$b,表示,$b加1,然后赋值给$d;
然而$d++是,先使用$d,意思是把当前的$d付给$f,然后$d再加1
懂了吗?++b和b++是不一样的!