为什么以下array()
传入函数。我无法理解array()
函数。
我知道如果$ _POST没有任何值,它将通过array()
,但array()
中的值是多少?
SomeFunction($_POST ? $_POST : array());
答案 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
,它只是传入一个空数组
为什么,我不知道...