我被PHP的数组()所困扰?

时间:2009-06-24 19:01:29

标签: php arrays function parameters

为什么以下array()传入函数。我无法理解array()函数。 我知道如果$ _POST没有任何值,它将通过array(),但array()中的值是多少?

SomeFunction($_POST ? $_POST : array());

3 个答案:

答案 0 :(得分:7)

array()不是函数,而是language construct to create a new array。如果没有给出参数(借用函数术语),则创建一个空数组。 PHP数组和说... Java数组之间的区别在于PHP数组在添加新元素时动态调整大小。但是array() - construct也将参数作为逗号分隔的 key => value-pairs 列表。

因此,您可以通过以下方式创建数组:

$empty = array();
$autoIndexed = array (1, 2, 3);
$associative = array('key1' => 1, 'key2' => 2);

var_dump($empty, $autoIndexed, $associative);

// Prints:
Array ()
Array (
   [0] => 1
   [1] => 2
   [2] => 3
)
Array (
   [key1] => 1
   [key2] => 2
)

答案 1 :(得分:3)

array()本身不是一个函数,它是一种语言结构。但是简单地使用array()将为您创建一个空数组,即零元素。

您可能想要查看:

isset($_POST) ? $_POST : array()

编辑:

正如greg所指出的,$_POST将始终被设置。所以没有必要检查它并返回一个空数组。 someFunc($_POST)应该做同样的事情。

答案 2 :(得分:0)

如果$ _POST不评估为true,它只是传入一个空数组 为什么,我不知道...