在php中访问静态变量

在php中访问静态变量,php,function,static,getter,Php,Function,Static,Getter,我有一个带有静态变量和get函数的类的简单例子 所有编译都正常,但在运行时我得到了这个错误 [Sun Jul 25 03:57:07 2010] [error] [client 127.0.0.1] PHP Fatal error: Undefined class constant 'TYPE' in ..... 对于函数getType() 这是我的班级 class NoSuchRequestHandler implements Handler{ public static $TYP

我有一个带有静态变量和get函数的类的简单例子 所有编译都正常,但在运行时我得到了这个错误

[Sun Jul 25 03:57:07 2010] [error] [client 127.0.0.1] PHP Fatal error:  Undefined class constant 'TYPE' in .....
对于函数getType()

这是我的班级

class NoSuchRequestHandler implements Handler{
    public static $TYPE  = 2001;
    public static $VER   = 0;

    public function getType(){
      return self::TYPE;
    }

    public function getVersion(){
      return self::VER;
    }
}

谢谢大家

由于这是公开的,您可以通过两种方式访问它

class NoSuchRequestHandler implements Handler{
    public static $TYPE  = 2001;
    public static $VER   = 0;

    public function getType(){
        return self::$TYPE;  //not the "$" you were missing.  
    }

    public function getVersion(){
        return self::$VER;
    }
}

echo NoSuchRequestHandler::$TYPE; //outside of the class.

PHP认为您试图访问类常量是因为:

return self::TYPE;

正如Chris提到的,使用:

return self::$TYPE;

可能令人困惑的问题是关于非静态类的变量

$myClass->anyVar //here there is no $ character for class variable
但是对于静态类

MYCLASS::$anyVar  // you must use the $ char for class variable

我想你最好在这里指出错误是什么。谢谢,这对我也有帮助:)