2009-02-12 70 views
0

我試過下面的代碼在codepad.org:類變量,範圍解析運營商和不同版本的PHP

class test { 
    const TEST = 'testing 123'; 
    function test() { 
    $testing = 'TEST'; 
    echo self::$testing; 
    } 
} 
$class = new test; 

而且它與返回:

1 
2 Fatal error: Access to undeclared static property: test::$testing on line 6 

我想知道是否引用類常量與變量將工作在我的服務器在家裏運行PHP 5.2.9而鍵盤使用5.2.5。 每個PHP版本的類變量有什麼變化?

回答

3

作用域解析運算符(也 稱爲Paamayim Nekudotayim)或在 簡單來說,雙冒號,是 令牌允許訪問靜態, 常數,和重寫成員或一類 方法。

您在函數test($ testing)中定義的變量不是靜態或常量,因此範圍解析運算符不適用。

class test { 
    const TEST = 'testing 123'; 
    function test() { 
    $testing = 'TEST'; 
    echo $testing; 
    } 
} 

$class = new test; 

或者只是訪問常量在類的外部:

test::TEST; 

應該如果正確使用,在家中的服務器上運行。關於從PHP4到PHP5的OOP更改,php documentation可能會有用。雖然我的頭腦剛剛起步,但我會說PHP5的主要變化與類變量有關,它們是可見性,靜態和常量。所有這些都包含在提供的文檔鏈接中。