У каждого выражения в PHP один из следующих встроенных типов в зависимости от его значения:
PHP – динамически типизированный язык, поэтому по умолчанию указывать тип переменной не потребуется; PHP определит тип во время выполнения. Однако PHP разрешает статически типизировать отдельные составляющие языка путём объявлений типов. Типы, которые поддерживает PHP, описывает раздел «Система типов».
Типы ограничивают тип операций, которые могут быть выполнены над ними. Однако, если выражение/переменная используется в операции, которую не поддерживает её тип, PHP попытается преобразовать значение в тип, который поддерживает операцию. Этот процесс зависит от контекста, в котором используется значение. Для получения дополнительной информации смотрите раздел Манипуляции с типами.
Таблицы сравнения типов также могут быть полезны, поскольку в них представлены различные примеры сравнения значений разных типов.
Замечание: Можно заставить выражение оцениваться с определённым типом, используя приведение типов. Переменная также может быть приведена к определённому типу с помощью функции settype().
Чтобы проверить значение и тип выражения,
используйте функцию var_dump().
Чтобы получить тип выражения,
используйте функцию get_debug_type().
Однако, чтобы проверить, является ли выражение определённым типом, используйте функции
is_type
.
<?php
$a_bool = true; // логическое значение
$a_str = "foo"; // строка
$a_str2 = 'foo'; // строка
$an_int = 12; // целое число
echo get_debug_type($a_bool), "\n";
echo get_debug_type($a_str), "\n";
// Если это целое число, увеличить на четыре
if (is_int($an_int)) {
$an_int += 4;
}
var_dump($an_int);
// Если $a_bool - это строка, вывести её
if (is_string($a_bool)) {
echo "Строка: $a_bool";
}
?>
Результат выполнения приведённого примера в PHP 8:
bool string int(16)
Замечание: Вместо функции get_debug_type(), которая была недоступна до PHP 8.0.0, вызывали функцию gettype(). Однако она не возвращает канонические имена типов.