PHP является языком со слабой типизацией, который позволяет объявлять переменную и ее тип путем простого использования зтой переменной. Если необходимо, он также осуществляет автоматическое преобразование одного типа в другой. Этот процесс называется неявным преобразованием типов. Однако могут возникнуть ситуации, когда присущее PHP неявное преобразование типов станет совсем нежелательным действием. Рассматривая пример ниже, обратите внимание на то, что входные данные для операции деления являются целыми числами. По умолчанию PHP осуществляет преобразование выходных данных к числу с плавающей точкой, для того чтобы получалось наиболее точное значение - 4,66 и 6 в периоде. Принер . Этот пример возвращает число с плавающей точкой. ?php $a = 56; $b = 12; $c = $a / $b; echo $c; ?>
Но что делать, если вместо этого нужно получить значение переменной $с в виде целого числа? Этого можно добиться разными способами, одним из которых является принудительное преобразование результата $a / $b в целое число путем использования оператора преобразования (int): $c = (int) ($a / $b);
Этот способ называется явным преобразованием типов. Обратите внимание на то, что для обеспечения преобразования в целое число значения всего выражения это выражение помещено в круглые скобки. В противном случае преобразованию подверглось бы только значение переменной $a, что не имело бы никакого смысла, поскольку деление на значение переменной $b все равно вернуло бы результат в виде числа с плавающей точкой.
Можно провести явное преобразование значений в те типы, которые показаны в табл.ниже но обычно eгo можно избежать, используя преобразование за счет вызова одной из встроенных функций PHP. Например, для получения целочисленного значения можно использовать функцию intval.
Тип
преобразования
|
Описание
|
(int) (integer)
|
Преобразование в целое число
путем отбрасывания десятичной части
|
(bool) (boolean)
|
Преобразование в булево значение
|
(float) (double) (real)
|
Преобразование в число с
плавающей точкой
|
(string)
|
Преобразование в строку
|
(array)
|
Преобразование в массив
|
(object)
|
Преобразование в обьект
|
|