php - 检查$ _POST是否为数组?

时间:2011-04-08 10:52:20

标签: php arrays global

我知道这可能是一个愚蠢的问题,但我遇到了一段PHP代码,在执行其他功能之前检查$_POST is_array()是否已。

现在我猜$ _POST应该总是一个关联数组?真的需要这个检查吗?为什么?

8 个答案:

答案 0 :(得分:6)

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

$_POST = 'not array';

然后是数组; - )

答案 1 :(得分:2)

不需要检查。 $ _POST是一个始终定义的superglobal数组。您应该使用isset

检查特定元素

答案 2 :(得分:2)

  • $ _ POST 是一个超全球,始终定义(始终存在)并且始终是数组
  • 这是真的,即使它不包含任何元素
  • 有可能,如果不可取,​​我从未见过,覆盖或取消设置
  • 你不需要$ _POST数组的isset()和is_array()但是你经常需要它们用于$ _POST数组中的元素

答案 3 :(得分:1)

PHP确保$ _POST始终是一个数组,除非您的代码中某处未设置或以某种方式覆盖$ _POST,否则不需要执行该检查。

答案 4 :(得分:1)

$ _ POST总是一个数组,他们可能正在检查某个$ _POST值是否为数组。

<input name="test" /> $ _POST ['test']不是数组

<input name="test[]" /> $ _POST ['test'] 数组

答案 5 :(得分:1)

它总是一个阵列,正如许多已经说过的那样。

我认为目的可能是检查一个空数组。 !empty($ _ POST)应该没问题。

也许编码器有一些部分,其中数组被更改为一个字符串(如果你问我就愚蠢)并且想要进行检查,否则如果该语句首先出现,那么它是不必要的

答案 6 :(得分:0)

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

答案 7 :(得分:0)

如前所述,$_POST是一个超级全局,它总是被定义并且总是一个数组(除非被覆盖)。

如果您正在尝试测试是否已发布某些内容,则可以使用以下内容:

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

要回答主要问题,不,不需要is_array检查。