Как определить тип данных php
Перейти к содержимому

Как определить тип данных php

  • автор:

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» ;
>

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *