[英]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.