我多次尝试用不同语言编写不同类型的代码。当我试着写这样的东西时:
if (!isset($_GET[""])) $_GET[""] = false;
编译器不报告错误。好的,我们的结构没有变量名。这是在实践中使用这种结构的一种方法吗?我认为这是无稽之谈。
我认为只有 $ _ GET 才能在实践中使用,例如:
if (count($_GET) > 0) do something
答案 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();
}
这只是一个简单的例子,应该进行进一步的验证。