【问题标题】:Class constant not accepted by php 5.4php 5.4 不接受类常量
【发布时间】:2014-12-22 13:32:55
【问题描述】:

我有一个类常量

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

我想在静态数组中用作字符串的一部分:

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

这两行都是同一个类的一部分。

在我的开发机器 (PHP 5.6) 上这工作正常,但在登台服务器 (PHP 5.4) 上这会引发以下错误:

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

如何将其重写为与 PHP 5.4 兼容?

【问题讨论】:

    标签: php static-members class-constants


    【解决方案1】:

    PHP 5,4 不允许在类属性声明中使用表达式。

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

    【讨论】:

    • 进一步说明这一点。 PHP 5.6 确实允许这种初始化。
    • 如此处所述:php.net/…
    • 好的。我认为这是出于某种原因在 5.3 中引入的。
    猜你喜欢
    • 1970-01-01
    • 2022-01-02
    • 2015-01-15
    • 2017-06-24
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 2011-01-14
    • 1970-01-01
    相关资源
    最近更新 更多