2012-12-13 58 views
1

我最近遇到了一些PHP相当有趣的问题。我想创建一个PHP关闭并将其分配给一个静态变量,因此只需要定义一次...PHP静态关键字和create_function问题

static $hasParent = create_function('$category, $parent_id', <<<'FUNC' 
     ...code... 
FUNC 
); 

但是它告诉我unexpected '(', expecting ',' or ';'。 这是一个PHP“功能”(读取错误),还是我做错了什么?

回答

3

:如上述实施例中所看到的

静态变量可以声明。尝试 为这些变量赋值,这些变量的结果是 表达式将导致解析错误。

裁判:http://php.net/manual/language.variables.scope.php#language.variables.scope.static


所以,也不行

function foo() { 
    static $bar = function() { 
    echo 'bar'; 
    }; 

    echo 'foo', $bar(); 
} 

foo(); 

OK

function foo() { 
    static $bar = null; 
    if ($bar === null) { 
    $bar = function() { 
     echo 'bar'; 
    }; 
    } 

    echo 'foo', $bar(); 
} 

foo(); 
+0

感谢耀西,位这是得到我的是我试图分配什么是基本的表达。再次感谢! – Shane