gettype
Возвращает тип PHP-переменной value . Для проверки типа переменной используйте функции is_* .
Список параметров
Возвращаемые значения
- «boolean»
- «integer»
- «double» (по историческим причинам в случае типа float возвращается «double» , а не просто «float» )
- «string»
- «array»
- «object»
- «resource»
- «resource (closed)» с PHP 7.2.0
- «NULL»
- «unknown type»
Список изменений
| Версия | Описание |
|---|---|
| 7.2.0 | Для закрытых ресурсов теперь возвращается ‘resource (closed)’ . Ранее для закрытых ресурсов возвращалось ‘unknown type’ . |
Примеры
Пример #1 Пример использования gettype()
$data = array( 1 , 1. , NULL , new stdClass , ‘foo’ );
foreach ( $data as $value ) echo gettype ( $value ), «\n» ;
>
Вывод приведённого примера будет похож на:
integer double NULL object string
Смотрите также
- get_debug_type() — Возвращает имя типа переменной в виде, подходящем для отладки
- settype() — Задаёт тип переменной
- get_class() — Возвращает имя класса, к которому принадлежит объект
- is_array() — Определяет, является ли переменная массивом
- is_bool() — Проверяет, является ли переменная логическим значением
- is_callable() — Проверяет, что значение может быть вызвано как функция в текущей области видимости
- is_float() — Проверяет, является ли переменная числом с плавающей точкой
- is_int() — Проверяет, является ли переменная целым числом
- is_null() — Проверяет, является ли значение переменной равным null
- is_numeric() — Проверяет, является ли переменная числом или строкой, содержащей число
- is_object() — Проверяет, является ли переменная объектом
- is_resource() — Проверяет, является ли переменная ресурсом
- is_scalar() — Проверяет, является ли переменная скалярным значением
- is_string() — Проверяет, принадлежит ли значение переменной строковому типу
- function_exists() — Возвращает true, если указанная функция определена
- method_exists() — Проверяет, существует ли метод в данном классе
Как узнать тип переменной php
Для получения типа переменной применяется функция gettype() , которая возвращает название типа переменной, например, integer (целое число), double (число с плавающей точкой), string (строка), boolean (логическое значение), null , array (массив), object (объект) или unknown type . Например:
"; echo gettype($b); // string ?>
Также есть ряд специальных функций, которые возвращают true или false в зависимости от того, представляет ли переменная определенный тип:
- is_integer($a) : возвращает значение true , если переменная $a хранит целое число
- is_string($a) : возвращает значение true , если переменная $a хранит строку
- is_double($a) : возвращает значение true , если переменная $a хранит действительное число
- is_numeric($a) : возвращает значение true , если переменная $a представляет целое или действительное число или является строковым представлением числа. Например:
$a = 10; $b = "10"; echo is_numeric($a); echo "
"; echo is_numeric($b);
Установка типа. Функция settype()
С помощью функции settype() можно установить для переменной определенный тип. Она принимает два параметра: settype(«Переменная», «Тип») . В качестве первого параметра используется переменная, тип которой надо установить, а в качестве второго — строковое описание типа, которое возвращается функцией gettype() .
Если удалось установить тип, то функция возвращает true , если нет — то значение false .
Например, установим для переменной целочисленный тип:
Поскольку переменная $a представляет действительное число 10.7, то его вполне можно преобразовать в целое число через отсечение дробной части. Поэтому в данном случае функция settype() возвратит true .
Преобразование типов
По умолчанию PHP при необходимости автоматически преобразует значение переменной из одного типа в другой. По этой причине явные преобразования в PHP не так часто требуются. Тем не менее мы можем их применять.
Для явного преобразования перед переменной в скобках указыется тип, в который надо выполнить преобразование:
$boolVar = false; $intVar = (int)$boolVar; // 0 echo "boolVar = $boolVar
intVar = $intVar";
В данном случае значение «false» пробразуется в значение типа int , которое будет храниться в переменной $intVar . А именно значение false преобразуется в число 0. После этого мы сможем использовать данное значение как число.
При использовании выражения echo для вывода на страницу передаваемые значения автоматически преобразуются в строку. И поскольку переменная boolVar равна false , ее значение будет преобазовано в пустую строку. Тогда как значение 0 преобразуется в строку «0».
В PHP могут применяться следующие преобразования:
- (int), (integer) : преобразование в int (в целое число)
- (bool), (boolean) : преобразование в bool
- (float), (double), (real) : преобразование в float
- (string) : преобразование в строку
- (array) : преобразование в массив
- (object) : преобразование в object
PHP проверка на тип данных
В этой статье вы узнаете как и зачем проверяют на тип данных (как правило в переменной) в PHP.
Как проверить тип переменной в PHP
В ваших скриптах может возникнуть необходимость на дополнительную проверку и иногда, это проверка на какой-то определенный тип. Чаще всего, смотрим, есть ли хоть какого-то значение в переменной:
В этом языке программирования типизацию называют динамической (также, можно встретить термин “слабая типизация“). Это означает, что строка может стать числом, если мы применим оператор сложения.
За это, кстати говоря, у PHP так много ненавистников .
Вернемся к нашей теме. Чтобы проверить на типы данных существуют следующие проверки:
if (is_array($arr)) < // переменная является массивом >/* is_bool() - Проверяем, является ли переменная булевой is_int() - Проверяем, является ли переменная целым числом is_numeric() - Проверяем, является ли переменная числом или строкой, содержащей число is_float() - Проверим, является ли переменная числом с плавающей точкой is_string() - Проверим, является ли переменная строкой is_object() - Проверим, является ли переменная объектом */
Можем проверить на массив, на тип булево (true или false), число с плавающей точкой, обычное число, строку и объект.
Эти проверки помогут вам в ваших скриптах. Например, стоит задача: если приходит целое число, то мы ничего не делаем, а если с плавающей точкой то округляем в какую-то сторону на “столько-то” знаков.
Также, бывают случаи, когда в переменную может записываться как число, так и массив, и нам нужно предусмотреть все эти варианты.
Есть также проверка и для NULL:
is_null()
Вот такие вот простые и полезные вещи могут улучшить наш код
автор: Dmitriy
З 2011 року займаюся веб-розробкою. Зараз я – PHP Full Stack Developer.
Обговорити ваш проект, а також дізнатися більше про мене ви можете на цьому сайті:
dev.forwww.com
Читайте також:
Залишити відповідь Скасувати відповідь
Щоб відправити коментар вам необхідно авторизуватись.
is_bool
Проверяет, является ли данная переменная логическим значением.
Список параметров
Возвращаемые значения
Возвращает true , если value является переменной типа bool , или false в противном случае.
Примеры
Пример #1 Пример использования is_bool()
// Так как $a является логической переменной, функция вернёт true
if ( is_bool ( $a ) === true ) echo «Да, это логическая переменная» ;
>
// Так как $b не является логической переменной, функция вернёт false
if ( is_bool ( $b ) === false ) echo «Нет, это не логическая переменная» ;
>
?>
Смотрите также
- is_float() — Проверяет, является ли переменная числом с плавающей точкой
- is_int() — Проверяет, является ли переменная целым числом
- is_string() — Проверяет, принадлежит ли значение переменной строковому типу
- is_object() — Проверяет, является ли переменная объектом
- is_array() — Определяет, является ли переменная массивом
User Contributed Notes 4 notes
4 years ago
The function Michael Smith published doesn’t do the work as it should.
To check if a variable is boolean is one thing, to evaluate if the value of a variable represents a boolean condition (true or false) is another.
Here a simple function that checks the status of the received variable in regards to boolean equivalencies (case insensitive).
/**
* Check «Booleanic» Conditions 🙂
*
* @param [mixed] $variable Can be anything (string, bol, integer, etc.)
* @return [boolean] Returns TRUE for «1», «true», «on» and «yes»
* Returns FALSE for «0», «false», «off» and «no»
* Returns NULL otherwise.
*/
function is_enabled ( $variable )
if (!isset( $variable )) return null ;
return filter_var ( $variable , FILTER_VALIDATE_BOOLEAN , FILTER_NULL_ON_FAILURE );
>
?>
Of course, it is a simplistic approach, but for the majority of cases it will do the job right.
And, just to put thing in the right perspective, here’s a real function that does what Phill disclosed:
/**
* Convert $variable to boolean (adapted from Phill answer)
*
* @param [mixed] $variable Can be anything
* @return [boolean] Returns the booelan equivalent to $variable based on Zend Enegine interpretation
*/
function to_bool ( $variable )
<
return (bool) $variable ;
>
?>
I hope it helps someone. Happy coding.
5 years ago
It should be stated that this function returns true if the _type_ of it’s argument is boolean. It does not convert or coerce the value to a boolean type, not sure why so many comments focus on how to do this.
However, if you arrived here looking for a solution to convert a value to a boolean type, use this:
2 months ago
Since PHP 8.0.0, it’s more flexible to use a match() structure (e.g. for translations into another language), with all benefits of strict comparisons (===):
function to_bool ( int | bool | string | null $value ): bool | null return match( is_string ( $value ) ? strtolower ( trim ( $value )) : $value ) 1 , TRUE , ‘1’ , ‘true’ , ‘on’ , ‘yes’ , ‘y’ => TRUE ,
0 , FALSE , ‘0’ , ‘false’ , ‘off’ , ‘no’ , ‘n’ => FALSE ,
default => NULL ,
>;
>
?>
10 years ago
The function in the last comment also converts the string ‘false’ to a true boolean. Here’s a function that does what I think was intended:
function toBool ( $var ) if (! is_string ( $var )) return (bool) $var ;
switch ( strtolower ( $var )) case ‘1’ :
case ‘true’ :
case ‘on’ :
case ‘yes’ :
case ‘y’ :
return true ;
default:
return false ;
>
>
- Copyright © 2001-2024 The PHP Group
- My PHP.net
- Contact
- Other PHP.net sites
- Privacy policy