为什么不能在类字段/属性中使用常量?

时间:2014-07-05 19:06:49

标签: php class constants

示例:

const USERNAME_MIN_LENGTH = '2';
private $uesrname_error_message= 'ERROR: Max. username length is ' . USERNAME_MIN_LENGTH;

我使用上面提供的代码收到此错误:

Parse error: syntax error, unexpected '.', expecting ',' or ';'

定义$ test变量的行发生错误。

我正在使用PHP 5.5.12版本。

为什么?

2 个答案:

答案 0 :(得分:3)

PHP不支持属性声明中的表达式。从PHP 5.6开始,将允许一些表达式。您可以在PHP's wiki上了解更多相关信息。

您的特定示例在PHP 5.6中运行。

答案 1 :(得分:2)

您需要在构造函数中定义变量$test,如下所示:

class yourClass{
    private $test;
    function __construct(){
        const USERNAME_MIN_LENGTH = '2';
        $this->test = 'Max. username length is ' . USERNAME_MIN_LENGTH;
    }
}

这仅适用于PHP 5.6

private $test = 'Max. username length is ' . USERNAME_MIN_LENGTH;