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