【发布时间】:2009-06-24 19:01:29
【问题描述】:
为什么下面的array() 被传递到一个函数中。我无法理解 array() 函数。
我知道如果 $_POST 没有任何值,它会通过array(),但是array() 中的值是什么?
SomeFunction($_POST ? $_POST : array());
【问题讨论】:
标签: php arrays function parameters
为什么下面的array() 被传递到一个函数中。我无法理解 array() 函数。
我知道如果 $_POST 没有任何值,它会通过array(),但是array() 中的值是什么?
SomeFunction($_POST ? $_POST : array());
【问题讨论】:
标签: php arrays function parameters
array() 不是一个函数,它是一个language construct to create a new array。如果没有给出参数(请原谅函数术语),则创建一个空数组。 PHP 数组和说... Java 数组的区别在于 PHP 数组会随着新元素的添加而动态调整大小。但是 array() 结构也将参数作为 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
)
【讨论】:
array() 本身不是函数,它是一种语言结构。但简单地使用array() 将为您创建一个空数组,即零元素。
您可能想要检查:
isset($_POST) ? $_POST : array()
编辑:
正如 greg 所指出的,$_POST 将始终被设置。所以不需要检查它并返回一个空数组。 someFunc($_POST) 应该做同样的事情。
【讨论】:
如果 $_POST 的计算结果不是true,它只是传入一个空数组。
为什么,我不知道...
【讨论】: