Кожен вираз в PHP, залежно від значення, має один з вбудованих типів, наведених нижче:
PHP — це динамічно типізована мова, тобто не потрібно вказувати тип змінної, оскільки він визначається під час виконання коду. Тим не менш, можливо статично типувати деякі аспекти мови за допомогою оголошення типів.
Над кожним типом можна виконати лише певні операції. Однак, якщо в операції використано вираз/змінну, тип якої не підтримує цю операцію, PHP намагатиметься перетворити тип значення в той, що підтримує її. Цей процес залежить від контексту, в якому значення використоваються. Більше інформації у розділі Перетворення типів.
Також може бути корисною Порівняльна таблиця типів, оскільки в ній наведено різні приклади порівнянь, пов'язані з типами.
Зауваження: Можливо примусово змінити тип виразу, використавши приведення типів. А для змінних є функція settype().
Щоб перевірити тип та значення виразу, використовуйте функцію var_dump().
Щоб отримати читабельне представлення типів при налагодженні, використовуйте
функцію gettype().
Для отримання типу виразу є
функція get_debug_type().
Проте для перевірки відповідності виразу конкретному типу використовується
функція is_type
.
<?php
$a_bool = true; // логічний тип (англ. boolean)
$a_str = "foo"; // рядковий тип (англ. string)
$a_str2 = 'foo'; // теж рядковий тип
$an_int = 12; // цілочисельний тип (англ. integer)
echo get_debug_type($a_bool), "\n";
echo get_debug_type($a_str), "\n";
// Якщо змінна $an_int має цілочисельний тип (тобто integer),
// збільшити її значення на 4
if (is_int($an_int)) {
$an_int += 4;
}
var_dump($an_int);
// Якщо $a_bool має рядковий тип, надрукувати її значення
if (is_string($a_bool)) {
echo "String: $a_bool";
}
?>
В PHP 8 поданий вище приклад виведе:
bool string int(16)
Зауваження: До PHP 8.0.0, де функція get_debug_type() не доступна, можна використовувати функцію gettype() натомість. Однак її назва не канонічна.