CakeFest 2024: The Official CakePHP Conference

Введение

У каждого выражения в 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(). Однако она не возвращает канонические имена типов.

add a note

User Contributed Notes

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