В первой строке вы определяете $my_var
как строку.
Внутри сравнения вы сравниваете эту переменную с постоянным целым числом.
Если вы хотите точное сравнение (я незнаете, почему вам нужно сравнить строку с целым числом без приведения), вы должны использовать ===
:
if ($my_var === 0) {
echo "my_var equals 0";
}
, который никогда не будет отображать сообщение.
Руководство по PHP определяетв разделе Операторы сравнения , оператор ==
имеет вид:
TRUE, если $ a равно $ b после жонглирования типа.
Итакважная вещь здесь type juggling
.
На самом деле, в PHP Manual: сравнения типов , вторая таблица сообщает вам именно это целое число 0
равно строке ""
.