在PHP中使用表达式(连接字符串)初始化类成员变量

Pre*_*mbo 4 php

我想使用表达式初始化类成员var-通过连接字符串...为什么以下不可能......

class aClass {
    const COMPANY_NAME = "A Company";
    var $COPYRIGHT_TEXT = "Copyright © 2011 " . COMPANY_NAME;  // syntax error on this line - why?
    var $COPYRIGHT_TEXT2 = "Copyright © 2011 " . "A Company";   // even a syntax error on this line
}
Run Code Online (Sandbox Code Playgroud)

非常感谢您的帮助.

Prembo

cwa*_*ole 5

那么,因为这就是PHP的工作原理.

在PHP中静态初始化的变量(方法之外的任何东西)可以分配给静态值,但不能将它们分配给需要函数调用的任何东西(除了array).你可以通过在构造函数中放置初始化来解决这个问题.

此外,您应该使用self :: COMPANY_NAME或aClass :: COMPANY_NAME,并且var自PHP 4以来一直不合适.使用public/protected/private(以及适当的静态).