1

可能重复:
为什么 PHP 不替换字符串中的变量?

我想让我的 PHP 重定向标头动态。目前我有:

header('Location:message.php?ref=conversation&conv=$conv_id')

但这会将用户重定向到:

doamin.com/message.php?ref=conversation&conv="$conv_id"

我究竟做错了什么?

4

5 回答 5

3

您将变量放在单引号中,更改为双引号。

于 2012-10-23T17:28:35.853 回答
1

把它改成这样:

header("Location:message.php?ref=conversation&conv=$conv_id");

或这个:

header('Location:message.php?ref=conversation&conv=' . $conv_id);

(我更喜欢后者,但这只是个人的事情。)

问题是,在 php 中,如果您使用双引号,它会解析字符串中的变量,而如果您使用单引号则不会。

于 2012-10-23T17:29:43.950 回答
1

单引号中的任何内容都像字符串一样

所以

header('Location:message.php?ref=conversation&conv=$conv_id') will not work 

应该

header("Location:message.php?ref=conversation&conv=$conv_id")
于 2012-10-23T17:30:10.233 回答
0

不多,你应该将 var 传递给字符串

header("Location:message.php?ref=conversation&conv=" . $conv_id)
于 2012-10-23T17:28:46.227 回答
0

您可以执行以下两项之一:

header("Location:message.php?ref=conversation&conv=$conv_id");

或者

header('Location:message.php?ref=conversation&conv='.$conv_id);

您不应该将变量放在单引号'中。将其放在双"引号中,将起作用

于 2012-10-23T17:32:35.397 回答