Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php-检查$\u POST是否为数组?_Php_Arrays_Global - Fatal编程技术网

php-检查$\u POST是否为数组?

php-检查$\u POST是否为数组?,php,arrays,global,Php,Arrays,Global,我知道这可能是一个愚蠢的问题,但我遇到了一段php代码,它在执行其他函数之前检查$\u POST是否为\u array() 现在我猜$\u POST应该始终是一个关联数组,还是不是?真的需要这张支票吗?为什么呢?如果它没有以某种方式改变,比如 $_POST = 'not array'; 然后是数组;-) 检查是不必要的$_POST是始终定义的数组。您只需使用issetPHP检查特定元素即可确保$\u POST始终是一个数组,您无需执行该检查,除非您在代码中的某个地方以某种方式取消设置或覆盖$\

我知道这可能是一个愚蠢的问题,但我遇到了一段php代码,它在执行其他函数之前检查
$\u POST
是否为\u array()


现在我猜$\u POST应该始终是一个关联数组,还是不是?真的需要这张支票吗?为什么呢?

如果它没有以某种方式改变,比如

$_POST = 'not array';

然后是数组;-)

检查是不必要的$_POST是始终定义的数组。您只需使用
isset

PHP检查特定元素即可确保$\u POST始终是一个数组,您无需执行该检查,除非您在代码中的某个地方以某种方式取消设置或覆盖$\u POST。

$\u POST始终定义为数组,即使它不包含任何键/值对。

$\u POST始终是一个数组,他们可能正在检查某个$\u POST值是否为数组

$\u POST['test']不是数组

$\u POST['test']是一个数组
  • $\u POST是一个超全局的,始终定义为(始终存在),并且始终是一个数组
  • 这是真的,即使它不包含任何元素
  • 不过,如果不可取,而且我从未见过它,也有可能覆盖或取消设置它
  • 对于$\u POST数组,不需要isset()和is\u数组(),但是对于$\u POST数组中的元素,通常需要它们

  • 正如许多人所说,它总是一个数组

    我想目的可能是检查一个空数组!空($\u POST)应该可以


    也许编码员有一些部分将数组更改为字符串(如果你问我,那么它是哑的)并希望进行检查,否则如果先执行该语句,那么它就没有必要了,正如已经多次提到的那样,
    $\u POST
    是一个超全局数组,它总是被定义的,并且总是一个数组(除非被覆盖)

    如果您试图测试是否发布了某些内容,可以使用以下内容:

    if (count($_POST)) {
        // something has been submitted
    }
    

    要回答主要问题,否,
    is\u数组
    检查是不需要的。

    完全正确。除非另有明确声明,$\u POST superglobal始终是一个数组。好的,但是,它只能由编码器更改,或者也可以由表单提交者设置为字符串?这可能是一个安全问题吗?@Julie Rock:如果开发人员没有像我回答的那样明确地更改它,那么它总是一个数组。这是不可能改变它外面。谢谢你的回复,我想投票给你的答案,因为它是详细的,虽然我觉得检查虫族一,因为它说的是我在寻找;我已经知道了所有其他的细节。不总是这样。我个人在$\u POST、$\u GET和Co周围使用了一个对象包装器。它们仍然可以作为数组工作,但它们是ArrayObject,因此无法通过简单的
    is\u array()
    检查。但这是一个非常特殊的情况。通常不关心。