2014-10-27 6 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], 
]; 

Обе эти линии являются частью одного класса.

На моем Dev машины (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

+0

, как описано здесь: http://php.net/migration56.new-features#migration56.new-features.const-scalar-exprs – VolkerK

+0

Хорошо. Я думал, что это было введено в 5.3 по какой-то причине. –