一尘不染

PHP错误:致命错误:常量表达式包含无效操作

php

我收到一个错误:

致命错误:常量表达式在第214行的config.php中包含无效操作

那行是:

 protected static $dbname = 'mydb_'.$appdata['id'];

我是否在报价中犯了任何错误?或者别的地方?

我对错误消息的搜索仅显示了不同的原因(函数定义中的动态默认值)。


阅读 195

收藏
2020-05-26

共1个答案

一尘不染

从 官方的PHP文档

像任何其他PHP静态变量一样,静态属性只能在PHP 5.6之前使用文字或常量进行初始化。不允许使用表达式。在PHP
5.6和更高版本中,相同的规则与const表达式适用:某些有限的表达式是可能的,只要它们可以在编译时求值即可。

因此,您不能使用另一个变量来初始化静态变量。用$appdata['id']常量字符串替换或删除static属性。

这是因为 所有其他静态声明都是在编译时解析的,而其他变量的内容是未知的。

2020-05-26