Какой тип данных у массивов в PHP?

«Какой тип данных у массивов в PHP?» — вопрос из категории PHP Core, который задают на 24% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В PHP массив (array) — это встроенный составной тип данных, который может выступать как упорядоченный список (с числовыми индексами), так и как карта (словарь) с ключами-строками.

Ключевые особенности:

  • Гибкость: Может содержать элементы любых типов, включая другие массивы.
  • Динамический размер: Не требует предварительного объявления размера.
  • Тип ключей: Ключами могут быть целые числа (int) или строки (string). При использовании других типов происходит приведение.
  • Проверка типа: Функция gettype($array) вернет "array". Для строгой проверки используется is_array().

Примеры:

// Индексированный массив
$list = [1, 2, 3]; // array(3) { [0]=> int(1) ... }

// Ассоциативный массив (карта)
$map = ['name' => 'Alice', 'age' => 30];

// Массив с разными типами
$mixed = [42, 'text', true, ['nested']];

var_dump(is_array($list)); // bool(true)
var_dump(gettype($map));   // string(5) "array"

С PHP 8.0 для аннотаций типов также широко используется тип iterable, который включает array и объекты, реализующие интерфейс Traversable.