在PHP5.2及以下版本中,在一个类中访问另一个类中定义为static的方法使用:classname::functionname()的方式是可以静态访问的,但是从5.2.1起,这种方法就不行了,会提示找不到方法。定义为static的方法只能在类内部访问,或者在非类中访问。
这样的话就又得回到函数时代了,我郁闷!!!
怎样才能在一个类中静态的访问另一个类中的静态方法呢?

解决方案 »

  1.   

    <?php
    class A {
    public static function funcA() {
    B::funcB();
    }
    };
    class B {
    public static function funcB() {
    echo 'This is function B::funcB, and called by A::funcA';
    }
    };A::funcA();
    ?>
    好像没有什么错误,php version 5.2.3
      

  2.   

    见鬼了
    刚刚测试了一下,一切都正常了
    那从OOP理论上来讲,定义为STATIC的属性或方法能否被外部类访问呢?
      

  3.   

    例如在JAVA中,被定义为STATIC的属性或方法,能否被另外一个类静态的访问?
      

  4.   

    当然可以,static的方法可以理解为不属于类的方法, 所以static的方法只能是不初始化的时候使用,如果在类的外部没办法调用,那static的类就没有意义了