在PHP中使用表达式(连接字符串)初始化类成员变量
我想使用表达式初始化一个类成员变量-通过连接字符串。。。为什么以下不可能在PHP中使用表达式(连接字符串)初始化类成员变量,php,Php,我想使用表达式初始化一个类成员变量-通过连接字符串。。。为什么以下不可能 类aClass{ const COMPANY_NAME=“A COMPANY”; var$COPYRIGHT\u TEXT=“COPYRIGHT©2011”。COMPANY\u NAME;//此行出现语法错误-为什么? var$COPYRIGHT_TEXT2=“COPYRIGHT©2011”“A Company”//这一行甚至有语法错误 } 非常感谢你的帮助 Prembo是这样的,因为PHP就是这样工作的 在PHP中静态
类aClass{
const COMPANY_NAME=“A COMPANY”;
var$COPYRIGHT\u TEXT=“COPYRIGHT©2011”。COMPANY\u NAME;//此行出现语法错误-为什么?
var$COPYRIGHT_TEXT2=“COPYRIGHT©2011”“A Company”//这一行甚至有语法错误
}
非常感谢你的帮助
Prembo是这样的,因为PHP就是这样工作的 在PHP中静态初始化的变量(方法之外的任何变量)可以分配给静态值,但不能分配给任何需要函数调用的变量(除了
数组
)。您可以通过在构造函数中放置初始化来解决这个问题
此外,您应该使用self::COMPANY_NAME或aClass::COMPANY_NAME,并且
var
自PHP4以来就已经过时了。使用public/protected/private(适当时使用static)。因为类属性/常量的值不能是表达式。为此,请使用构造函数
public function __construct() {
$this->COPYRIGHT_TEXT = "Copyright © 2011 " . self::COMPANY_NAME;
}
仅供参考,从中收集的信息也可以使用定义,如:
define('THING', 'foo' . 'bar');
class Thing {
static $MyVar = THING;
}