解决方案 »

  1.   

    static修饰了变量$b,那么它就是一直存在的,去掉static,那么每次调用都会初始化一次
    因为$a = &test();(加了&,地址传递)所以$a被改变,那么静态变量$b的值也被改变,所以在执行$c = &test();时,此时$b的值是8,返回10
      

  2.   

    把语句改成
    function &test() {
    static $b = 1;
    static $b = 100;
    static $b = 1000;
            // $b = 1000;
    $b += 2;
    return $b;
    } 又测试了下,原来静态存在的不能再用静态方式去修改它。但是又不报错,有点受不了,呵呵~。