Dutch PHP Conference 2025 - Call For Papers

Вступ

Кожен вираз в 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() натомість. Однак її назва не канонічна.

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top