静态连接字符串变量的奇怪解析错误

时间:2010-11-24 13:00:16

标签: php string static concatenation parse-error

我收到了这个错误:

  

解析错误:语法错误,意外'。',期待','或';'在第5行的/var/(...)/config.php

使用此(简化)代码:

<?php

class Config
{
   public static $somevar = "Date: " . date('Y');
}

?>

我认为这是有效的PHP,但我猜不是......我在这里做错了什么?谢谢!

3 个答案:

答案 0 :(得分:5)

根据the PHP docs

  

与任何其他PHP静态变量一样,静态属性只能使用文字或常量初始化;表达式是不允许的。因此,虽然您可以将静态属性初始化为整数或数组(例如),但您可能不会将其初始化为另一个变量,函数返回值或对象。

尝试写作

Config::$somevar = "Date: " . date('Y');

在课程定义之后。

答案 1 :(得分:2)

没有允许属性初始化的操作或函数,因为在解析时会对此进行评估。

答案 2 :(得分:1)

来自Manual

  

与任何其他PHP静态变量一样,静态属性只能使用文字或常量初始化;表达式是不允许的。因此,虽然您可以将静态属性初始化为整数或数组(例如),但您可能不会将其初始化为另一个变量,函数返回值或对象。