我尝试使用以下语法进行重定向:
header("location: readMore.php?id=$post['post_id']");
但它没有用。只有在有人建议将大括号放在 $post['post_id']
之后,它才起作用!
正确的语法是:
header("location: readMore.php?id={$post['post_id']}");
在这种情况下,花括号有什么作用?
原文由 Pioneer2017 发布,翻译遵循 CC BY-SA 4.0 许可协议
引用 手册:
您的第一个代码使用简单的语法,而您的第二个代码使用复杂的语法。
该手册没有明确说明这一点,但简单语法中的空格 似乎是一个错误,使您的第一个代码无效。据我所知,复杂的语法 似乎 支持与常规 PHP 相同的语法,但这似乎并不能在任何地方得到实际保证。
一般来说,字符串插值非常笨拙:
您会遇到与
$object -> foo
和$object->foo->bar
类似的问题。对我来说,那是纯粹的疯狂。出于这个原因,我已经开始尽可能避免使用双引号字符串(我唯一使用它们的目的是转义序列,如
"\n"
)。我改为使用单引号和字符串连接,如下所示:这使您可以对变量使用 实际 的 PHP 语法,而无需可怕的死亡陷阱,即字符串插值。