2014-10-27 24 views
0

我有一個類恆定類恆定PHP不接受5.4

const DATE_REGEX = '@^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[email protected]'; 

,我想在一個靜態數組使用作爲字符串的一部分:

public static $rules = [ 
    'startdate' => ['required','regex:' . self::DATE_REGEX], 
]; 

兩者的那些行的是部分同班同學

在我的開發機器(PHP 5.6)能正常工作,但臨時服務器(PHP 5.4)上,這將引發以下錯誤:

syntax error, unexpected '.', expecting ']' 

我怎麼能改寫這是PHP 5.4兼容?

回答

4

PHP 5,4不允許在類屬性聲明中使用表達式。

此功能已被PHP 5.6引入http://php.net/migration56.new-features#migration56.new-features.const-scalar-exprs

+0

爲了進一步說明這一點。 PHP 5.6確實允許這種初始化。 – robbmj 2014-10-27 11:30:40

+0

如下所述:http://php.net/migration56.new-features#migration56.new-features.const-scalar-exprs – VolkerK 2014-10-27 11:31:45

+0

好的。我認爲這是出於某種原因在5.3中引入的。 – 2014-10-27 11:45:42