Introduction

Оновлено: 12.05.2023

Кожен вираз в PHP має один з наступних вбудованих типів в залежності від його значення:

  • null
  • bool
  • int
  • float (число з плаваючою комою)
  • рядок
  • масив
  • об'єкт
  • що викликається
  • ресурс

PHP є динамічно типізованою мовою, що означає, що за замовчуванням немає необхідності вказувати тип змінної, оскільки він буде визначений під час виконання програми. Однак, існує можливість статичної типізації деяких аспектів мови за допомогою оголошень типів.

Типи обмежують набір операцій, які можна над ними виконувати. Однак, якщо вираз/змінна використовується в операції, яка не підтримується його типом, PHP спробує перетворити значення в тип, який підтримує цю операцію. Цей процес залежить від контексту, в якому використовується значення. За додатковою інформацією зверніться до розділу Жонглювання типами.

Таблиці порівняння типів також можуть бути корисними, оскільки містять різноманітні приклади порівняння значень різних типів.

Примітка: Вираз можна примусово обчислити до певного типу за допомогою приведення типу. Змінну також можна привести до типу на місці за допомогою функції settype().

Щоб перевірити значення і тип виразу, використовуйте функцію var_dump(). Щоб отримати тип виразу, скористайтеся функцією get_debug_type(). Однак, щоб перевірити, чи вираз має певний тип, використовуйте функцію is_type.

<?php
$a_bool = true;   // a bool
$a_str  = "foo";  // a string
$a_str2 = 'foo';  // a string
$an_int = 12;     // an int

echo get_debug_type($a_bool), "\n";
echo get_debug_type($a_str), "\n";

// If this is an integer, increment it by four
if (is_int($an_int)) {
    $an_int += 4;
}
var_dump($an_int);

// If $a_bool is a string, print it out
if (is_string($a_bool)) {
    echo "String: $a_bool";
}
?>

Вивід вищенаведеного прикладу на PHP 8:

Зауваження: До версії PHP 8.0.0, де функція get_debug_type() недоступна, замість неї можна використовувати функцію gettype(). Однак вона не використовує канонічні імена типів.