<?php
$i=2;
switch($i++){
case 2:
echo '输出2<br/>';
echo $i;
break;
case 3:
echo '输出3<br/>'.$i;
break;
case 1:
echo "输出1<br/>";
break;
default:
break;
}
下面这两段代码迷惑:
<?php
for($i=0;$i<3;++$i){
$j=$i;
echo $j.'-'.$i.'<br/>';
}
for($i=0;$i<3;$i++){
$j=$i;
echo $j.'-'.$i.'<br/>';
}
这里的i++和++i没有区别,不理解?
<?php
$a=1;
echo $a+$a++.'<br/>';
$a=1;
echo $a+$a+$a++;
这里的输出值为什么都是3?
<?php
$a=1;
echo $a+$a++.'<br/>';
$a=1;
echo $a+$a+$a++;
第一个echo的执行顺序如下图:

$a = 1;
$a++ 返回1保存到临时变量 ~1
这个时候!0(也就是$a已经自增变为2)了
~1+!0 (1+2) 保存到临时变量 ~2
输出3
第二个echo的执行顺序如下图:

如图所示
执行顺序是
$a = 1;
$a+$a 的结果2保存到临时变量 ~1
$a++ 返回1, 保存到临时变量 ~2
~1+~2(1+2) 保存到临时变量 ~3
输出3