php中的静态行为令人窒息,可以';不接受函数

php中的静态行为令人窒息,可以';不接受函数,php,php-5.3,Php,Php 5.3,这段代码抛出解析错误,我不明白为什么 function t(){ return 'g'; } function l(){ static $b = t(); return $b; } l(); 问题是,为什么?静态变量值在源解析步骤中填充,因此它们不能包含非常量值 您可以通过以下方式实现值初始化: function l(){ static $b; if (!$b) $b = t(); return $b; } 从手册中引用: 注意: 尝试为这些[静态]

这段代码抛出解析错误,我不明白为什么

function t(){
 return 'g';
}
function l(){
    static $b = t();
    return $b;
}
l();

问题是,为什么?

静态
变量值在源解析步骤中填充,因此它们不能包含非常量值

您可以通过以下方式实现值初始化:

function l(){
    static $b;
    if (!$b) $b = t();
    return $b;
}

从手册中引用:

注意:

尝试为这些[静态]变量赋值,这些变量是 表达式的结果将导致分析错误

(我的重点)


c、 f.如果您声明
静态$b,则将示例#7

作为旁白$b=t()
然后
l()
按预期正确返回“g”。