在课堂上,我在第22行得到了一个"意外的"[...],我可以为我的生活找不到原因.
错误在第22行
tablePosts}` wp INNER JOIN `{$this->tablePostMeta}` wm ON (wm.`post_id` = wp.`ID`) INNER JOIN `{$this->tableTermRelationships}` wtr ON (wp.`ID` = wtr.`object_id`) INNER JOIN `{$this->tableTermTaxonomy}` wtt ON (wtr.`term_taxonomy_id` = wtt.`term_taxonomy_id`) INNER JOIN `{$this->tableTerms}` wt ON (wt.`term_id` = wtt.`term_id`)";
我已经尝试重写有问题的行,我试图将const声明移到顶部,以及删除use
语句.两者都不奏效.
这是因为类常量需要具有常量值,并且您的定义不是常量.
从类常量的手册:
该值必须是常量表达式,而不是(例如)变量,属性或函数调用.
您可以通过删除const
和BASE_QUERY
转换$BASE_QUERY
并删除$this->
其他变量来证明您的语法在类之外是正确的,它应该成功解析.
您可以将此表达式定义为成员变量,但不能在初始化期间定义.这是因为PHP中的成员变量也必须初始化为常量表达式.最简单的解决方案是$BASE_QUERY
在类中定义,然后在构造函数中初始化它.