Кожен вираз в PHP, залежно від значення, має один з вбудованих типів, наведених нижче:
PHP — це динамічно типізована мова, тобто не потрібно вказувати тип змінної, оскільки він визначається під час виконання коду. Тим не менш, можливо статично типувати деякі аспекти мови за допомогою оголошення типів. Докладніше про типи: Система типів PHP.
Над кожним типом можна виконати лише певні операції. Однак, якщо в операції використано вираз/змінну, тип якої не підтримує цю операцію, PHP намагатиметься перетворити тип значення в той, що підтримує її. Цей процес залежить від контексту, в якому значення використовуються. Більше інформації у розділі Перетворення типів.
Також може бути корисною Порівняльна таблиця типів, оскільки в ній наведено різні приклади порівнянь, пов'язані з типами.
Зауваження: Можливо примусово змінити тип виразу, використавши приведення типів. А для змінних є функція settype().
Щоб перевірити тип та значення виразу, використовується функція var_dump().
Для перевірки значення та типу виразу використовується функція
var_dump(). Для отримання типу
виразу є функція
get_debug_type(). А для перевірки відповідності виразу
конкретному типу використовується функція
is_type
.
<?php
$a_bool = true; // логічний тип (bool)
$a_str = "foo"; // рядковий тип (string)
$a_str2 = 'foo'; // теж рядковий тип
$an_int = 12; // цілочисельний тип (int)
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() натомість. Однак її назва не канонічна.