簡體   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