gettype
Returns the type of the PHP variable value . For type checking, use is_* functions.
Parameters
The variable being type checked.
Return Values
- "boolean"
- "integer"
- "double" (for historical reasons "double" is returned in case of a float , and not simply "float" )
- "string"
- "array"
- "object"
- "resource"
- "resource (closed)" as of PHP 7.2.0
- "NULL"
- "unknown type"
Changelog
Version | Description |
---|---|
7.2.0 | Closed resources are now reported as 'resource (closed)' . Previously the returned value for closed resources were 'unknown type' . |
Examples
Example #1 gettype() example
$data = array( 1 , 1. , NULL , new stdClass , ‘foo’ );
foreach ( $data as $value ) <
echo gettype ( $value ), «\n» ;
>
The above example will output something similar to:
See Also
- get_debug_type() — Gets the type name of a variable in a way that is suitable for debugging
- settype() — Set the type of a variable
- get_class() — Returns the name of the class of an object
- is_array() — Finds whether a variable is an array
- is_bool() — Finds out whether a variable is a boolean
- is_callable() — Verify that a value can be called as a function from the current scope.
- is_float() — Finds whether the type of a variable is float
- is_int() — Find whether the type of a variable is integer
- is_null() — Finds whether a variable is null
- is_numeric() — Finds whether a variable is a number or a numeric string
- is_object() — Finds whether a variable is an object
- is_resource() — Finds whether a variable is a resource
- is_scalar() — Finds whether a variable is a scalar
- is_string() — Find whether the type of a variable is string
- function_exists() — Return true if the given function has been defined
- method_exists() — Checks if the class method exists
User Contributed Notes 1 note
Same as for «boolean» below, happens with integers. gettype() return «integer» yet proper type hint is «int».
If your project is PHP8+ then you should consider using get_debug_type() instead which seems to return proper types that match used for type hints.
Как определить тип данных php
Для получения типа переменной применяется функция gettype() , которая возвращает название типа переменной, например, integer (целое число), double (число с плавающей точкой), string (строка), boolean (логическое значение), null , array (массив), object (объект) или unknown type . Например:
Также есть ряд специальных функций, которые возвращают true или false в зависимости от того, представляет ли переменная определенный тип:
is_integer($a) : возвращает значение true , если переменная $a хранит целое число
is_string($a) : возвращает значение true , если переменная $a хранит строку
is_double($a) : возвращает значение true , если переменная $a хранит действительное число
is_numeric($a) : возвращает значение true , если переменная $a представляет целое или действительное число или является строковым представлением числа. Например:
Оба выражения is_numeric() возвратят true, так как переменная $a представляет число, а переменная $b является строковым представлением числа
is_bool($a) : возвращает значение true , если переменная $a хранит значение true или FALSE
is_scalar($a) : возвращает значение true , если переменная $a представляет один из простых типов: строку, целое число, действительное число, логическое значение.
is_null($a) : возвращает значение true , если переменная $a хранит значение null
is_array($a) : возвращает значение true , если переменная $a является массивом
is_object($a) : возвращает значение true , если переменная $a содержит ссылку на объект
Установка типа. Функция settype()
С помощью функции settype() можно установить для переменной определенный тип. Она принимает два параметра: settype(«Переменная», «Тип») . В качестве первого параметра используется переменная, тип которой надо установить, а в качестве второго — строковое описание типа, которое возвращается функцией gettype() .
Если удалось установить тип, то функция возвращает true , если нет — то значение false .
Например, установим для переменной целочисленный тип:
Поскольку переменная $a представляет действительное число 10.7, то его вполне можно преобразовать в целое число через отсечение дробной части. Поэтому в данном случае функция settype() возвратит true .
Преобразование типов
По умолчанию PHP при необходимости автоматически преобразует значение переменной из одного типа в другой. По этой причине явные преобразования в PHP не так часто требуются. Тем не менее мы можем их применять.
Для явного преобразования перед переменной в скобках указыется тип, в который надо выполнить преобразование:
В данном случае значение «false» пробразуется в значение типа int , которое будет храниться в переменной $intVar . А именно значение false преобразуется в число 0. После этого мы сможем использовать данное значение как число.
При использовании выражения echo для вывода на страницу передаваемые значения автоматически преобразуются в строку. И поскольку переменная boolVar равна false , ее значение будет преобазовано в пустую строку. Тогда как значение 0 преобразуется в строку «0».
Определить тип переменной в PHP
<?php $var_int = 1; $var_double = 2.0; $var_null = NULL; $var_str = «text»; $var_obj = new stdClass; echo ( gettype ( $var_int ) ) ; echo'<br>'; echo ( gettype ( $var_double ) ) ; echo'<br>'; echo ( gettype ( $var_null ) ) ; echo'<br>'; echo ( gettype ( $var_str ) ) ; echo'<br>'; echo ( gettype ( $var_obj ) ) ; echo'<br>'; ?>
Можно перебрать разные типы с помощью массива.
<?php $data = array( 1 , 1. , NULL , new stdClass, 'foo' ); foreach ( $data as $value ) < echo gettype ( $value ), "\n" ; >?>
integer double NULL object string
В других языках
- Си: такой функции нет.
- C++: похожую задачу решает функция typeid()
gettype
Возвращает тип PHP-переменной var . Для проверки типа переменной используйте функции is_*.
Список параметров
Переменная, у которой проверяется тип.
Возвращаемые значения
- " boolean "
- " integer "
- " double " (по историческим причинам в случае типа float возвращается "double", а не просто "float")
- " string "
- " array "
- " object "
- " resource "
- " NULL "
- "unknown type"
Примеры
Пример #1 Пример использования gettype()
$data = array( 1 , 1. , NULL , new stdClass , ‘foo’ );
foreach ( $data as $value ) <
echo gettype ( $value ), «\n» ;
>