静态成员不能用作PHP5中的默认函数参数?

时间:2011-01-10 03:28:32

标签: php parameters static-members

剂量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

1 个答案:

答案 0 :(得分:6)

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

函数定义只能包含简单赋值,而不是复杂的赋值,如Foo :: $ data。

这样做:

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