我有这样的课:
class main {
private static $content;
public function ini() {
include 'content_a.php';
self::$content = new $content;
}
public function content($snippet, $addclass=false) {
return self::$content->snippet;
}
}
它解析一些输入并确定要包含在 ini() 中的文件,该文件在每个页面加载的顶部运行一次。在此示例中,它包括content_a.php
,但还有更多 ( content_b.php
, content_c.php
, ...)。该方法将文件的内容保存到 $content 属性以供 content() 使用,该方法在脚本的其余部分被多次调用。
文件 content_a.php 如下所示:
class content {
public $text = <<<FOO
<div class="default $addclass">Hello World</div>
FOO;
}
无论是 a、b 还是 c,它看起来总是一样的——只是heredoc 中的实际内容不同。每个文件包含多个片段;在此示例中,只有一个 ( $text
)。
我正在渲染这样的片段:
echo $main->content('text');
...效果很好。但是,当我尝试通过这样的参数时$addclass
......
echo $main->content('text', 'bar');
...我得到了错误unexpected T_VARIABLE, expecting T_END_HEREDOC
。如果我将变量括在大括号中,我会得到unexpected T_CURLY_OPEN, expecting T_END_HEREDOC
.
任何想法我做错了什么 - 还是有更好的方法来做到这一点?