Тип переменной, преобразование типов
Функция 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илиfalseis_scalar($a)возвращает значениеtrue, если переменная$aпредставляет один из простых типов: строку, целое число, действительное число, логическое значениеis_null($a)возвращает значениеtrue, если переменная$aхранит значениеnullis_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