Тип переменной, преобразование типов
Функция var_dump
Для отладки ваших программ лучше использовать специальную функцию var_dump
. Она помимо вывода строки или числа еще будет указывать тип выводимых данных, а также им размер:
<?
$a = 10;
$b = "10";
echo var_dump($a); // int(10)
echo "<br>";
echo var_dump($b); // string(2)
Функция gettype
Для получения типа переменной применяется функция gettype()
, которая возвращает название типа
переменной, например, integer
(целое число),
double
(число с плавающей точкой), string
(строка), boolean
(логическое
значение),
null
, array
(массив), object
(объект) или unknown type
:
<?
$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
представляет целое или действительное число или является строковым представлением числа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($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