2012-12-13 55 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