为什么静态方法不能操作静态变量?解释下哈。。

解决方案 »

  1.   

    谁说的,把你代码贴出来class T{
    public static $var;
    public static function foo($p){
    self::$var=$p;
    }
    }
    T::foo('you fool');
    echo T::$var;
      

  2.   

    静态方法在编译期间就已定义,而操作非静态变量需要一个对象。而这个对象是在运行时才产生的。
    大概来说,非静态方法可以操作静态方法和变量。而静态方法不能操作非静态方法和变量。(不过,实际上 php中可以违规的静态调用非静态方法)
    http://cn.php.net/manual/zh/language.oop5.static.php
      

  3.   

    你去问 java 程序员去,他说可以就可以,他说不可以就不可以
    好好的一个人,非要自己给自己套上加锁,何苦来的