繁体   English   中英

PHP 5.3和'::'

[英]PHP 5.3 and '::'

我从5.3开始使用PHP,并使用'::'访问常量ex;。 class :: const。 然而,当我尝试使用我的代码在一个较旧的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。 在静态方法内部,您不能引用它,因为它不是在对象上调用的,但是从非静态方法中,您可以访问静态变量。

无论如何,PHP 5.3关于::运算符的唯一新功能是可以使用包含className的$ string的功能。

请发布代码的相关部分

我在通过类名访问类常量时遇到了同样的问题,所以我求助于getters:

public function getSomeConstant() {
    return self::SomeConstant;
}

在我需要的部分:

className::getSomeConstant();

编辑:在PHP <5.3中...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM