Как работает присвоение переменной со сменой типа
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
При таком (не строгом) сравнении $a приводится к сравниваемому типу - к числу. 'a34' в виде числа - это ноль (точнее в "0"). A "0" == 0 -> true (При "0" === 0 -> false)
Про преобразование типов написано в документации (https://www.php.net/manual/ru/language.types.type-juggling.php)
Примером автоматического преобразования типа является оператор умножения '*'. Если какой-либо из операндов является float, то все операнды интерпретируются как float, и результатом также будет float. В противном случае операнды будут интерпретироваться как int и результат также будет int.
<?php
$foo = "1"; // $foo - это строка (ASCII-код 49)
$foo *= 2; // $foo теперь целое число (2)
$foo = $foo * 1.3; // $foo теперь число с плавающей точкой (2.6)
$foo = 5 * "10 Little Piggies"; // $foo - это целое число (50)
$foo = 5 * "10 Small Pigs"; // $foo - это целое число (50)
?>
Это же правило действует и при сравнении.
