статический член не может быть использован в качестве параметра функции по умолчанию в PHP5? - PullRequest
3 голосов
/ 10 января 2011

доза 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 Ответ

6 голосов
/ 10 января 2011
function tt($para = Foo::$data)
{
    echo $para;
}

определения функций могут содержать только простые назначения, а не сложные, такие как Foo :: $ data.

Просто сделайте это:

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