Possible Duplicate:
Syntax error while defining an array as a property of a classPHP的靜態變量初始化
我試圖做到以下幾點:
final class TestClass {
public static $myvar = 10*10; //line 3
//rest of code...
}
但我得到這個錯誤:syntax error, unexpected '*', expecting ',' or ';' [line 3]
爲什麼不是這可能嗎?當然,如果我將10 * 10更改爲100,則一切正常。 不允許用數學計算初始化一個靜態變量嗎?不可能以任何方式?
另外,可以創建一個靜態的getter函數:http://stackoverflow.com/a/7785213/1335996 – 2013-03-13 15:46:23
從PHP 5.6開始,'static'允許使用標量表達式,因此您的問題中的代碼完全可用PHP> = 5.6。一個標量表達式可能包括整數,浮點數,字符串和常量與數學,位,邏輯,連接,三元和比較運算符相結合。 例如,以下定義現在在您的課程內部是正確的: 'public static $ bar =「該課程名稱是」.__ CLASS __;' 'public static $ baz = 8 >> 1;' 'public static $ bat = 10 + 3 * 2;' – 2017-02-19 20:09:59