很多时候,我尝试用不同的语言编写不同类型的代码。当我试图写这样的东西时:
if (!isset($_GET[""])) $_GET[""] = false;
编译器不报告错误。好的,我们有这个没有变量名的构造。这是在实践中使用这种结构的一种方法吗?我认为这是胡说八道。
我认为只有$_GET在实践中可用,例如:
if (count($_GET) > 0) do something
很多时候,我尝试用不同的语言编写不同类型的代码。当我试图写这样的东西时:
if (!isset($_GET[""])) $_GET[""] = false;
编译器不报告错误。好的,我们有这个没有变量名的构造。这是在实践中使用这种结构的一种方法吗?我认为这是胡说八道。
我认为只有$_GET在实践中可用,例如:
if (count($_GET) > 0) do something
如果您在谈论 $_GET[""] 的可用性 - 您不能使用 URL 设置它。
如果你去 URLtest.php?=3
你会得到一个空的$_GET
如果您转到该 URL test.php?""=3
,您将能够使用它访问它$_GET["\"\""]
所以没有办法在 URL 中设置一个变量并用它来检索它$_GET[""];
但是,您可以将密钥设置为代码中的空字符串:
$_GET[""] = 3;
echo $_GET['']; // 3
echo $_GET[""]; // 3
我不明白你想通过这段代码实现什么:
if (!isset($_GET[""])) $_GET[""] = false;
php 可以将空字符串分配为数组键,并且可以像这样访问它:
$array[0]['']
为了您的检查,您可以使用这样的功能,例如:
function GET($key, $default = null) {
return isset($_GET[$key]) ? $_GET[$key] : $default;
}
如果您使用 'http://domain.com' 之类的 url 测试以下代码:
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
根据这一点,您要检查或记住的内容取决于您,即使您执行http://www.domain.com或此http://www.domain.com/index ,也始终设置 $_GET .php?test=adsf
你对 $_GET[''] = 'smthing' 所做的就像拥有一个数组 arr['test'] = 'smthing'; 尽管您没有提供测试密钥,而是提供了一个空密钥,但在涉及 $_GET 时您无法正确处理。
所以如果你问我,你应该检查一下具体的东西。
if(isset($_GET['test']) && $_GET['test'] == 'adsf')
{
doSomething();
}
这只是一个简单的例子,应该进行进一步的验证。
empty($_GET)
并count($_GET)
在这里为我工作!