2011-01-10 37 views
3

劑量PHP5禁止這種用法,下面的代碼無法正常工作靜態成員不能用作PHP5中的默認函數參數嗎?

class Foo{ 
    public static $data = "abcd"; 
} 

function tt($para = Foo::$data) 
{ 
    echo $para; 
} 

tt ("rcohu"); 

它報告:

PHP Parse error: syntax error, unexpected T_VARIABLE, expecting T_STRING in /home/jw/sk/sk.php on line 6 

Parse error: syntax error, unexpected T_VARIABLE, expecting T_STRING in /home/jw/sk/sk.php on line 6 
+0

如果你是幸福的我的回答,你能不能把它標記爲這樣 – Jason 2011-01-12 03:34:42

回答

6
function tt($para = Foo::$data) 
{ 
    echo $para; 
} 

函數的定義只能包含簡單的任務,而不是複雜的像美孚:: $的數據。

只是這樣做:

function tt($para = false) 
{ 
    if(!$para) $para = Foo::$data; 
    echo $para; 
} 
+1

他們只是不能包含變量表達式。 `Foo :: DATA`其中`DATA`是一個類常量的作品。 – BoltClock 2011-01-10 04:14:27

相關問題