Heredoc语法错误

时间:2012-01-04 01:44:38

标签: php mediawiki

对于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

3 个答案:

答案 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来说效果不好......