чем массив (0) отличается от массива () - PullRequest
1 голос
/ 27 августа 2009
$variable = array(0);

$variable = array();

чем они отличаются?

Ответы [ 4 ]

9 голосов
/ 27 августа 2009

Первый заполняет массив номером 0, второй - пустой массив.

7 голосов
/ 27 августа 2009

Первый содержит один элемент, целое число ноль. Параметр не является «инициализатором размера», как вы можете себе представить. Вы можете увидеть это с помощью var_dump на них:

$foo = array(0);
var_dump($foo);

$bar = array();
var_dump($bar);

Это выводит

array(1) {
  [0]=>
  int(0)
}
array(0) {
}
4 голосов
/ 27 августа 2009

В первом случае:

$variable = array(0);
var_dump($variable);

Вы получаете:

array
  0 => int 0

т. Е. Массив с элементом, значение которого равно 0.


И во втором случае:

$variable = array();
var_dump($variable);

вы получите:

array
  empty

т. Е. Пустой массив.

2 голосов
/ 27 августа 2009

В дополнение к meder:

$variable = array(0);
count($variable); // 1
empty($variable); // false
(!$variable)  // false

$variable = array();
count($variable); // 0
empty($variable); // true
(!$variable)  // true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...