$ _GET没有变量名

时间:2013-01-21 08:20:26

标签: php

我多次尝试用不同语言编写不同类型的代码。当我试着写这样的东西时:

if (!isset($_GET[""])) $_GET[""] = false;

编译器不报告错误。好的,我们的结构没有变量名。这是在实践中使用这种结构的一种方法吗?我认为这是无稽之谈。

我认为只有 $ _ GET 才能在实践中使用,例如:

if (count($_GET) > 0) do something

4 个答案:

答案 0 :(得分:2)

如果您正在讨论$ _GET [“”]的可用性 - 您无法使用URL设置它。

如果您转到网址test.php?=3,您将获得一个空的$_GET

如果您转到网址test.php?""=3,则可以使用$_GET["\"\""]

访问该网址

因此无法在URL中设置变量并使用$_GET[""];

检索它

您可以从代码中将密钥设置为空字符串:

$_GET[""] = 3;
echo $_GET['']; // 3
echo $_GET[""]; // 3

答案 1 :(得分:0)

empty($_GET)count($_GET)正在为我工​​作!

答案 2 :(得分:0)

我无法理解您希望通过此代码实现的目标:

if (!isset($_GET[""])) $_GET[""] = false;

php可以将空字符串指定为数组键,它可以像以下一样访问:

$array[0]['']

对于您的检查,您可以使用此类功能,例如:

function GET($key, $default = null) {
    return isset($_GET[$key]) ? $_GET[$key] : $default;
}

答案 3 :(得分:0)

如果您使用“http://domain.com”等网址测试以下代码:

print_r($_GET);
echo '<br>';
if(isset($_GET))
{
   echo '$_GET IS SET<br>';
}

if(!empty($_GET))
{
   echo '$_GET IS NOT EMPTY<br>';
}

if(count($_GET) > 0)
{
   echo '$_GET IS NOT EMPTY<br>';
}

你会得到

Array ( ) 
$_GET IS SET

根据那个,那取决于你想要检查或做什么 请记住,$ _GET始终设置 即使您执行http://www.domain.com或此http://www.domain.com/index.php?test=adsf

你用$ _GET [''] ='smthing'做的就像有一个数组arr ['test'] ='smthing';虽然你没有给出一个测试密钥而不是一个空的密钥,但是在$ _GET时你无法正确处理。

所以如果你问我,你应该检查具体的东西。

if(isset($_GET['test']) && $_GET['test'] == 'adsf')
{
   doSomething();
}

这只是一个简单的例子,应该进行进一步的验证。