Для получения типа переменной применяется функция gettype(), которая возвращает название типа переменной, например, integer
(целое число),
double
(число с плавающей точкой), string
(строка), boolean
(логическое значение),
null
, array
(массив), object
(объект) или unknown type
. Например:
<?php $a = 10; $b = "10"; echo gettype($a); // integer echo "<br>"; 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 "<br>"; echo is_numeric($b);
Оба выражения 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("Переменная", "Тип")
. В качестве первого параметра используется переменная, тип которой надо установить, а в качестве второго -
строковое описание типа, которое возвращается функцией gettype()
.
Если удалось установить тип, то функция возвращает true
, если нет - то значение false
.
Например, установим для переменной целочисленный тип:
<?php $a = 10.7; settype($a, "integer"); echo $a; // 10 ?>
Поскольку переменная $a представляет действительное число 10.7, то его вполне можно преобразовать в целое число через отсечение дробной части.
Поэтому в данном случае функция settype()
возвратит true
.
По умолчанию PHP при необходимости автоматически преобразует значение переменной из одного типа в другой. По этой причине явные преобразования в PHP не так часто требуются. Тем не менее мы можем их применять.
Для явного преобразования перед переменной в скобках указыется тип, в который надо выполнить преобразование:
$boolVar = false; $intVar = (int)$boolVar; // 0 echo "boolVar = $boolVar<br>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