是否可以使用a命名get变量。运营商?

时间:2014-11-14 13:31:09

标签: php get

我认为这是一个简单的问题,我在使用a传递变量时遇到了麻烦。在名称中,例如

www.example.com/index.php?auth.start=facebook 

如果我将此网址更改为

www.example.com/index.php?authstart=facebook

我尝试得到像这样的变量

$var = $_GET[authstart];

echo $var;

一切正常,但是

 $var = $_GET[auth.start];

 echo $var;

这显示$var中的任何人都无法帮助我解决此问题

先谢谢

3 个答案:

答案 0 :(得分:1)

变量名中的.在PHP中无效,因此使用$_GET PHP会将.转换为_。这样做是因为register_globals会将$_GET数组提取到单个PHP变量中,而这些变量不能包含.

执行print_r($_GET)会告诉你。

用户定义的数组工作正常:$a['x.y'] = 1等......

答案 1 :(得分:1)

尝试使用$_GET["auth_start"] 希望有所帮助:)

答案 2 :(得分:0)

数组键是字符串。虽然php有时会原谅你省略它们,但它们应该被包含在内。总是这样做

$_GET['yourkey'];

永远不会

$_GET[yourkey];

在您的情况下,这是正确的语法:

 $var = $_GET['auth.start'];

但是,正如@AbraCadaver所说,这也行不通,因为.已更改为_

所以使用

 $var = $_GET['auth_start'];

要深入一点:如果你实际上没有把它变成一个字符串,你会得到这个通知:

  

PHP注意:使用未定义的常量你的密钥 - 假设'你的密钥'