2011-01-10 36 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

相关问题