【发布时间】:2014-01-02 18:49:32
【问题描述】:
我有一个类似下面的数组结构:
$system_data = array(
87 => array(
'message' => "{$message_name} logged a new activity.",
'description' => 'patient logged a new activity',
'message_type' => 3
)
)
当调用函数时,它会找到引用的消息字符串(从 ID - 87)并将相关的$message_name 变量值注入到字符串中。如果我返回一个直接注入变量的静态双引号字符串,它会起作用,但是当我将其转置到我的数组时(更改字符串上的双引号并向其添加 {$variable_name} 语法,我收到以下错误:
解析错误:语法错误,意外'"'
从我的字符串中取出{$} 可以解决问题,所以这一定意味着双引号不会对数组抛出错误,而是{$} 在双引号中抛出错误。有什么想法吗?
编辑:
根据要求,代码设置如下:
class Log_model extends CI_Model {
const SUPERVISOR_PROGRAM_UPDATED = 87;
private $system_data = array(
87 => array(
'message' => "{$message_name} logged a new activity.",
'description' => 'patient logged a new activity',
'message_type' => 3
)
)
/*functions here*/
}
【问题讨论】:
-
您在哪一行收到此错误?另外,我不能reproduce the error。
-
这里没有解析错误codepad.org/sdyzGNts。解析错误发生在您的程序开始运行之前,因此您可以将所有“它如何在代码中到达这一点”场景抛到窗外。
-
@Fred-ii- 会试试这个。
-
@Prusprus No. 3v4l.org/Kq9Qg。显示您的完整代码。
-
这样 - 在类中设置属性时不能使用动态元素。属性必须全部是静态的。 Example 1 php.net/manual/en/language.oop5.properties.php "这个声明可能包含一个初始化,但是这个初始化必须是一个常数值"