我设置了一个类,简化了这个:
class Labels {
static public $NAMELABEL = "Name";
}
我成功地获得了以下代码以便正常工作:
echo '<table border="1">';
echo '<tr>';
echo "<th>" . Labels::$NAMELABEL . "</th>";
echo '</tr>';
// the rest of the Table code not shown for brevity...
echo "</table>";
我在运行时看到一个名为名称的列标题的表格 - 所以它运行正常。
但不是在heredoc中 - 我得到“注意:未定义的变量:NAMELABEL在C:\ xampp ........ blah blah” 当我运行以下内容时:
echo <<<_END
<form action="index.php" method="post"><pre>
Labels::$NAMELABEL : <input type="text" name="author" />
<input type="submit" value="ADD RECORD" />
</pre></form>
_END;
我尝试了各种引用,字符串连接运算符'。',没有任何效果。 我想“我有静态类变量在HTML表格中工作, 为什么不一个heredoc。“
我喜欢heredocs,他们有一个奇怪的名字和奇怪的问题。 这是我渴望的那种令人心碎的乐趣,heredocs 正义的小蠢猴子。我真的想在这里使用我的静态类变量 - 是否有一些组合 引用/字符串连接,这将允许我将它们嵌入我的heredocs?
答案 0 :(得分:9)
heredocs中的插值与双引号中的插值相同,因此您可以使用curly brace ("complex") syntax。
然而,解析器无法识别静态类变量(请参阅前面的文档)。为了引用静态类变量,您需要在本地设置它们,如下所示:
$label = Labels::$NAMELABEL;
echo <<<_END
<form action="index.php" method="post"><pre>
$label : <input type="text" name="author" />
<input type="submit" value="ADD RECORD" />
</pre></form>
_END;