对于mediawiki皮肤,我收到以下代码的错误
private $_sideboxf = <<<EOD
<h3>%s</h3>
<ul class="submenu">
%s
</ul>
EOD;
错误为syntax error, unexpected T_START_HEREDOC
。我检查了语法,我不知道有什么问题。甚至代码的作者也不明白为什么我在git上询问时会出现这个错误。
编辑:班级定义
class SkinTemplate extends QuickTemplate
{
private $_sideboxf = <<<EOD
<h3>%s</h3>
<ul class="submenu">
%s
</ul>
EOD;
// Some public function
} // End of Class
答案 0 :(得分:7)
使用heredoc初始化类变量需要PHP5.3.0 +,您的代码在PHP 5.3中运行良好
答案 1 :(得分:4)
你真的想在成员变量初始化期间做那个heredoc吗?也许更好的路线可能是:
class MyClass
{
public function getSideBoxF()
{
return <<<EOD
Stuff goes here...
EOD;
}
}
另请注意,关闭HEREDOC必须与左边距齐平,我添加了类包装器以显示它应该是什么样的。
答案 2 :(得分:1)
heredoc的结束标记实际上是缩进的吗?
这对IIRC来说效果不好......