我认为这是一个简单的问题,我在使用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
中的任何人都无法帮助我解决此问题
先谢谢
答案 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注意:使用未定义的常量你的密钥 - 假设'你的密钥'