Жонглирование типами (type juggling) - PHP
В этом уроке вы узнаете о жонглировании типами (type juggling) в PHP и о том, как оно работает.
Введение
PHP - это язык программирования со свободной типизацией. Это означает, что при определении переменной вам не нужно указывать её тип. PHP внутри определит тип переменной в зависимости от контекста, в котором она используется.
Например, если вы присвоите строку переменной, ее типом будет строка:
<?php
$my_var = 'PHP'; // строка
А потом присвоите той же переменной целое число, и её тип будет целым числом:
<?php
$my_var = 'PHP'; // строка
$my_var = 100; // целое число
PHP имеет внутреннюю функцию под названием "жонглирование типами" (type juggling). Это означает, что при сравнении переменных разных типов, PHP преобразует их в общий, сопоставимый тип. Например:
<?php
$qty = 20;
if($qty == '20') {
echo 'Переменная равна 20';
}
Вывод:
Переменная равна 20
Из-за жонглирования типами PHP преобразовывает строку '20'
в целое число (20) и сравнивает его с переменной $qty
. Результат true
. Таким образом, вы увидите сообщение "Переменная равна 20" в выводе.
Жонглирование типами также работает в арифметических операциях для переменных разных типов. В следующем примере показано, как жонглирование типами работает в арифметической операции:
<?php
$total = 100;
$qty = "20";
$total = $total + $qty;
echo $total; // 120
Тип $total
— целое число, тогда как $qty
— строка. Чтобы вычислить сумму, PHP сначала преобразует значение переменной $qty в целое число. Результатом является целое число.
Рассмотрим следующий пример:
<?php
$total = 100;
$qty = "20 штук";
$total = $total + $qty;
echo $total; // 120
В этом примере PHP преобразует строку "20 штук" как целое число 20 перед вычислением суммы.
Подытожим
- PHP является языком с динамической типизацией. Тип переменной в PHP определяется на основе её значения.
- При сравнении значений разных типов, PHP неявно преобразует их к одному сравнимому типу.
NULL
и о том, как проверить, имеет ли переменная значение null или нет.