为什么将以下array()
传递给一个函数。我无法理解array()
功能。 我知道如果$ _POST没有任何值,它会通过array()
,但是array()
的值是多少?我坚持PHP的数组()?
SomeFunction($_POST ? $_POST : array());
为什么将以下array()
传递给一个函数。我无法理解array()
功能。 我知道如果$ _POST没有任何值,它会通过array()
,但是array()
的值是多少?我坚持PHP的数组()?
SomeFunction($_POST ? $_POST : array());
array()
不是一个函数本身,它是一种语言结构。但只需使用array()
就会为您创建一个空数组,即零元素。
你可能要检查:
isset($_POST) ? $_POST : array()
编辑:
正如格雷格指出,$_POST
将始终被设置。所以不需要检查它并返回一个空数组。 someFunc($_POST)
应该做同样的事情。
它只是传入一个空数组,如果$ _POST不计算为true
。
为什么,我不知道...
array()是不是一个功能,它是一个language construct to create a new array。如果没有参数(原因是函数术语),则创建一个空数组。 PHP数组之间的区别和说... Java数组是指在添加新元素时动态调整PHP数组的大小。但是array() - 构造也将参数作为逗号分隔的列表key =>值对。
所以,你可以通过以下方式创建数组:
$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
)
$ _ POST应始终设置,除非你是在一个古老的PHP,在这种情况下有更好的事情要做比假装没有发布数据。 – Greg 2009-06-24 19:07:15
是的,你是对的。没有想到这一点。但这意味着这个问题是完全荒谬的,因为一个空的$ _POST将至少是一个空的数组 – knittl 2009-06-24 19:27:24