PHP 5.3和';::';

PHP 5.3和';::';,php,Php,我从5.3开始学习PHP,并使用“::”访问常量ex;类::常量。但是,当我尝试在旧的PHP(即5.1.6和5.2.12)中使用我的代码时,我得到一个错误,即“::”是意外的 如何在这些旧版本的PHP5中访问常量?ClassName::constant应该可以工作。根据,PHP 5.3中新增了以下语法: $classname = "MyClass"; echo $classname::constant . "\n"; // As of PHP 5.3.0 $class = new MyClas

我从5.3开始学习PHP,并使用“::”访问常量ex;类::常量。但是,当我尝试在旧的PHP(即5.1.6和5.2.12)中使用我的代码时,我得到一个错误,即“::”是意外的


如何在这些旧版本的PHP5中访问常量?

ClassName::constant
应该可以工作。根据,PHP 5.3中新增了以下语法:

$classname = "MyClass";
echo $classname::constant . "\n"; // As of PHP 5.3.0

$class = new MyClass();
$class->showConstant();

echo $class::constant."\n"; // As of PHP 5.3.0
更完整的代码示例/简化可能有助于调试。

应该是:

ClassName::CONSTANT_NAME

这应该适用于所有版本的PHP 5。

使用::运算符,您只能调用静态方法或访问类的静态变量/常量。
正确的方法是className::method()或className::publicVariable。在静态方法中,您不能引用它,因为它不是在对象上调用的,但是可以从非静态方法访问静态变量

无论如何,PHP5.3关于的唯一新特性是能够使用包含类名的$string


请发布代码的相关部分

我在通过类名访问类常量时遇到同样的问题,因此我求助于getter:

public function getSomeConstant() {
    return self::SomeConstant;
}
在我需要它的地方:

className::getSomeConstant();

编辑:在PHP<5.3中,即…

可能希望发布生成错误的代码,以便我们可以尝试为您清除错误。这与给出的示例有何不同?大写?