Встречается на 33% собеседований по PHP

Какие типы данных есть в PHP

В PHP существует несколько основных типов данных, которые делятся на три категории: простые (скалярные), сложные и специальные. Простые типы включают boolean, integer, float и string; сложные — array и object; специальные — NULL и resource. PHP — язык с динамической типизацией, поэтому тип переменной определяется во время выполнения и может меняться.

Простые (скалярные) типы

Скалярные типы представляют одиночные значения.

  • Boolean (логический тип) — принимает значения true или false. Используется в условиях и логических операциях.
  • Integer (целое число) — целые числа, например, 42, -7. Диапазон зависит от разрядности системы (обычно 64-битное знаковое).
  • Float (число с плавающей точкой), также известный как double — числа с дробной частью, например, 3.14, -0.001. Подходит для вычислений, где нужна точность до определённого знака.
  • String (строка) — последовательность символов, например, "Hello". Строки могут быть заключены в одинарные или двойные кавычки, поддерживают интерполяцию переменных.

Сложные типы

Сложные типы могут содержать другие значения.

  • Array (массив) — упорядоченный набор данных, где каждый элемент имеет ключ и значение. Ключи могут быть целыми числами или строками. Массивы в PHP могут быть как списками, так и ассоциативными.
php
$list = [1, 2, 3];
$assoc = ['name' => 'Alice', 'age' => 30];
  • Object (объект) — экземпляр класса. Объекты позволяют использовать ООП: инкапсуляцию, наследование, полиморфизм.
php
class User {
    public $name;
}
$user = new User();
$user->name = 'Bob';

Специальные типы

  • NULL — специальное значение, обозначающее отсутствие значения. Переменная считается NULL, если ей присвоено NULL, она не инициализирована или удалена через unset().
  • Resource (ресурс) — ссылка на внешний ресурс, например, файл, соединение с БД или поток. Создаётся специальными функциями, такими как fopen(), и должен быть закрыт после использования.
php
$file = fopen('file.txt', 'r'); // resource
// ...
fclose($file);

Объявление типов и динамическая типизация

PHP поддерживает объявление скалярных типов для аргументов функций и типов возвращаемых значений. Это делает код более предсказуемым и снижает количество ошибок.

php
function add(int $a, int $b): int {
    return $a + $b;
}

При этом PHP остаётся языком с динамической типизацией: переменная может менять тип в процессе выполнения. Например, $x = 5; $x = "text"; — допустимо. Это даёт гибкость, но требует внимательности, чтобы избежать неожиданных ошибок.

Коротко

  • Основные типы: boolean, integer, float, string, array, object, NULL, resource.
  • Скалярные типы — одиночные значения; сложные — массивы и объекты; специальные — NULL и resource.
  • PHP — динамически типизированный язык, но поддерживает объявление типов для функций.
  • Ресурсы требуют явного закрытия, а NULL обозначает отсутствие значения.
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы