$a = 1;
$b = 2;
$c = &$a;
$c = 2;if(($a = 3) > 0 || ($b = $a) > 0){

$a++;
$b++;
$c++;
}
printf("%d,%d,%x\n",$a,$b,$c);if(($c = 3) > 0 || ($b = $a) > 0 ){
$a++;
$b++;
}printf("%d,%d,%x\n",$a,$b,$c);
说说你的理由~~~

解决方案 »

  1.   


    $a = 1;
    $b = 2;
    $c = &$a; //变量c地址指向变量a
    $c = 2; //这个其实没什么用if(($a = 3) > 0 || ($b = $a) > 0){ //条件判断中前者成立,后者不执行
        //$a = 3, $b = 2, $c = 3
        $a++; //$a = $c = 4(变量c地址指向了a)
        $b++; //$b = 3
        $c++; //$c = $a
    }
    printf("%d,%d,%x\n",$a,$b,$c); //结果5,3,5//$a = 5, $b = 3, $c = 5
    if(($c = 3) > 0 || ($b = $a) > 0 ){//条件判断中前者成立,后者不执行
        $a++; //$a = $c + 1
        $b++; //$b = 4
    }
    //$c = $a = 4
    printf("%d,%d,%x\n",$a,$b,$c); //结果4,4,4
      

  2.   

    if(($a = 3) > 0 || ($b = $a) > 0)把这条件判断改如下if($a = 3 || $b = $a){
    如果还能分析写出结果,说明已经有点理解php中的条件判断了
      

  3.   


    function test(&$a) 

    $a=$a+100; 

    $b=1; 
    echo $b;//输出1 
    test($b);
    echo "<hr>";
    echo $b;