我是 PHP/SQL 的新手,我尝试在定界文档中使用变量,因为我需要输出大量文本。我只包含第一句话,因为它足以说明问题)。
我的问题是在定界文档中,变量(见下文:$data['game_name]
and $data['game_owner']
) 不被识别为变量,而是被识别为纯文本。我该如何解决这个问题?
$response = $bdd->query('SELECT * FROM video_game');
while ($data = $response->fetch())
{
echo <<<'EX'
<p>Game: $data['game_name']<br/>
the owner of the game is $data['game_owner']
</p>
EX;
}
你的heredoc需要一点修改(因为它实际上是Nowdoc!):
echo <<<EX
<p>Game: {$data['game_name']}<br/>
the owner of the game is {$data['game_owner']}
</p>
EX;
-
Heredoc 标识符(与 nowdoc 不同)不能被引用。'EX'
需要成为EX
.
您将 Nowdoc 与 Heredoc 混淆了。
-
字符串中的复杂数据类型必须被包围{}
让它们被解析为变量。例如,$data['game_name']
应该{$data['game_name']}
.
-
在过时的 PHP 版本中(PHP 7.3 之前),heredoc 终止符must not前面有任何空格。从文档中:
结束标识符可以通过空格或制表符缩进,在这种情况下,文档字符串中的所有行中的缩进都会被去除。在 PHP 7.3.0 之前,结束标识符必须从该行的第一列开始。
你在这里混淆了heredoc和nowdoc。你想使用heredoc and notNowdoc 因为你的字符串中有变量。 Heredocs 是“扩展的”双引号字符串,而 nowdocs 更类似于单引号字符串,因为变量不在 nowdoc 字符串中解析,而是在 Heredoc 中解析。
- 更多关于heredochere http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc.
- 有关 Nowdoc 的更多信息here http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.nowdoc.
请更仔细地阅读有关这些的文档。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)