Я застрял с массивом PHP ()? - PullRequest
0 голосов
/ 24 июня 2009

Почему следующее array() передается в функцию. Я не могу понять функцию array(). Я знаю, что если $ _POST не имеет никакого значения, оно пройдет array(), но каково значение в array()?

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

Ответы [ 3 ]

7 голосов
/ 24 июня 2009

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
)
3 голосов
/ 24 июня 2009

array() не является функцией как таковой, это языковая конструкция. Но простое использование array() создаст для вас пустой массив, то есть с нулевыми элементами.

Вы, вероятно, хотите проверить:

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

Edit:

Как указал Грег, $_POST всегда будет установлен. Поэтому нет необходимости проверять это и возвращать пустой массив. someFunc($_POST) должен делать то же самое.

0 голосов
/ 24 июня 2009

Это просто передает пустой массив, если $ _POST не оценивается как true.
Почему, я не знаю ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...