Php 是否可以通过$\u get获取空数组值?

Php 是否可以通过$\u get获取空数组值?,php,arrays,get,Php,Arrays,Get,是否可以通过$\u get获取空数组(包含0项的数组)值 是否可以使用直接值设置 count($_GET['param'])==0 如果数组为空或包含无关紧要的值。只需声明一个变量并将$\u GET[]传递给该变量 比如说, $para=$_GET['param']; 现在呢 if(is_array($para)) { // } else{ $para=new array(); } 您只需要一个空值url=myform.php?param=¶m2= 在表单中,让值为空: &

是否可以通过
$\u get
获取空数组(包含0项的数组)值

是否可以使用直接值设置

count($_GET['param'])==0

如果数组为空或包含无关紧要的值。只需声明一个变量并将$\u GET[]传递给该变量

比如说,

$para=$_GET['param'];
现在呢

if(is_array($para))
{
//  

} 
else{
$para=new array();
}

您只需要一个空值url=
myform.php?param=¶m2=

在表单中,让值为空:

<input type='text' name='param' value ='' />
解决方法: 只需编辑后端,如果
params
没有数据,或者它不是数组(null,空,无论什么…),只需为其分配一个空字符串:

$param=(isset($\u GET['param'])和&is_数组($\u GET['param'])$_获取['param']:数组()

更新:
我做了一些测试,似乎无法使用表单或ajax在请求中添加“nothing”。
0
'
Null
$\u GET
的有效值,但甚至没有创建空数组。 因此,要回答您的问题,不可能从前端获取空数组值

在后端手动编辑$\u GET的选项很少:

<?php
    if(!isset($_GET['param']) || !$_GET['param']){ //not set or (null,0,"")
        $_GET['param'] = array();
    }
    if(count($_GET['param'])==0){...}; // 0 if no 'param' was provided.

在正常情况下不可能通过GET传递空数组。也就是说,我可以想出一种非常罕见的方法,让您使用的检查返回真值

http://domain.com/receiver?param=a%3A0%3A%7B%7D
上面的内容基本上是一个序列化的、URL编码的空数组,其键为“param”

如果目标服务器具有某种过滤器,可以自动取消序列化所有传入数据,那么可能会发生这种情况。 (或类似下面的内容)

我知道这是一个远程获取,但这是可能的,可能是某个只处理序列化数据但意外地向公共e.t.c开放的私有测试服务器。 也就是说,它仍然只传递序列化的空数组,而不是空数组本身。但老实说,这个答案更像是一个笑话/有趣的答案,试图指出一些非常罕见的情况

count($_GET['param'])==0

将返回true(不在服务器端主动赋值)

@kingkero,no,isset value检查值是否为null或未列出。但array()不是空值。@Rakeshharma,好的,我可以重新表述:我如何通过url发送值以在php端获取空数组值?查找空($\u get['param'])或简单的$get=$\u get['param'];不管它是空的还是空的not@RakeshSharma,好的,我需要一个包含0项的数组。简单如下:谢谢,但是<代码>参数[]=
不是空数组。它是一个空值的数组。另外,我需要在不进行额外重新分配的情况下获取包含0项的数组。。这是个好问题,但不可能。请参阅我的更新。我需要避免额外的分配和条件。您不需要其他阻止。仅使用if(count($para)
foreach($_GET as $key => $value){
$_GET[$key] = unserialize($value);
}

count($_GET['param'])==0
count($_GET['param'])==0