Gettype: примеры (PHP)

Примеры и описание функции gettype для PHP
Раздел: Работа с переменными
gettype(mixed $value): string

Функция gettype в PHP

Функция gettype возвращает строку, описывающую тип данных переданной переменной. Чаще всего она применяется при отладке скриптов для динамической проверки типа значения в ситуациях, когда он неизвестен заранее.

Аргументы функции

Функция принимает один обязательный аргумент:

  • mixed $value – переменная, тип которой необходимо определить.

Возвращаемое значение – строка, которая может содержать одно из следующих обозначений: "boolean", "integer", "double" (для чисел с плавающей точкой), "string", "array", "object", "resource", "resource (closed)", "NULL", "unknown type".

Базовые примеры функции gettype

Простые примеры для основных типов данных PHP:

echo gettype(true);
boolean
echo gettype(100);
integer
echo gettype(12.5);
double
echo gettype("Текст");
string
echo gettype([1, 2, 3]);
array
echo gettype(null);
NULL

Пример с ресурсом и закрытым ресурсом:

$file = fopen('example.txt', 'r');
echo gettype($file);
fclose($file);
echo gettype($file);
resource
resource (closed)
Похожие функции в PHP

Для проверки типов часто удобнее использовать семейство функций is_*, которые возвращают логическое значение.

  • is_int(), is_string(), is_bool() и другие – проверяют конкретный тип, что упрощает условные конструкции.
  • get_debug_type() (появилась в PHP 8) – возвращает более точные имена типов (например, "float" вместо "double"), а для объектов указывает имя класса. Эта функция считается более современной альтернативой для отладки.

Функция gettype полезна, когда нужна строковая метка типа. Для проверок в условиях предпочтительнее is_*, а в отладке на PHP 8+ – get_debug_type.

Частые ошибки при использовании

Передача несуществующей переменной вызывает предупреждение.

echo gettype($undefinedVariable);
Warning: Undefined variable $undefinedVariable
NULL

Сравнение строки результата без учета регистра или прямым сравнением может привести к ошибке.

if (gettype(5.5) == 'float') {
    echo 'Это float';
} else {
    echo 'Это не float';
}
Это не float

Потому что gettype(5.5) возвращает "double", а не "float".

Изменения в новых версиях PHP

В PHP 8 сама функция gettype не изменилась. Однако, для более точной и удобной отладки была добавлена функция get_debug_type. Она возвращает исправленные имена типов (например, "float" вместо "double", "bool" вместо "boolean") и для объектов выводит имя класса.

echo get_debug_type(5.5);
echo gettype(5.5);
float
double
Расширенные примеры применения

Использование в пользовательской функции для обработки разных типов данных.

Пример php
function processValue($val) {
    $type = gettype($val);
    switch ($type) {
        case 'integer':
            return $val * 2;
        case 'string':
            return strtoupper($val);
        case 'array':
            return array_sum($val);
        default:
            return 'Тип ' . $type . ' не поддерживается';
    }
}
echo processValue(10) . "\n";
echo processValue("hello") . "\n";
echo processValue([1,2,3]);
20
HELLO
6

Проверка типа перед математической операцией.

Пример php
$a = "10 строк";
if (gettype($a) == 'integer' || gettype($a) == 'double') {
    $result = $a + 5;
} else {
    $result = 'Ошибка: нечисловой тип';
}
echo $result;
Ошибка: нечисловой тип

Анализ элементов внутри массива.

Пример php
$data = [1, 'текст', 3.14, null];
foreach ($data as $item) {
    echo gettype($item) . "\n";
}
integer
string
double
NULL

Обработка ресурсов.

Пример php
$ch = curl_init();
echo gettype($ch) . "\n";
curl_close($ch);
// После закрытия тип изменится
echo gettype($ch);
resource
resource (closed)
Аналоги в других языках
Python

Функция type() возвращает объект класса, а str(type()) – строковое представление.

print(type(10))
print(str(type(10)))

JavaScript

Оператор typeof возвращает строку с именем типа, но имеет особенности (например, для null возвращает "object").

console.log(typeof 10);
console.log(typeof null);
number
object
MySQL

Функция TYPE() не существует. Тип данных определяется при описании схемы таблицы. Для проверки типа значения в запросе можно использовать CAST() или проверку через REGEXP.

SELECT CAST(123 AS CHAR);
123

Отличие PHP функции в том, что она работает только с переменными в коде, а не с данными из базы.

PHP gettype function comments

En
Gettype Get the type of a variable