php + types = bugs

Crazy

Developer
Баг в неумении читать мануал.

PHP:
<?php

$bool = 0 == "string"; 
$bool2 = 0 === "string"; 
var_dump($bool);
var_dump($bool2);

?>
 

young

Новичок
$bool = 0 == "string";
var_dump($bool);

TRUE

$bool = 0 == "1string";
var_dump($bool);

FALSE

Я понимаю, что по ману оно так и есть, но где тут ЛОГИКА?!
 

Demiurg

Guest
перед сравнением происходит приобразование строки в int в первом случае получается 0 во втором 1
 

Crazy

Developer
Автор оригинала: young
Я понимаю, что по ману оно так и есть, но где тут ЛОГИКА?!
Логика описана в мануале. Ты сраниваешь строку с числом операцией "==" которая выполняет автоматическое приведение типа. В твоем случае строка переводится в число. Поскольку содержимое не является валидным строковым представлением числа, то получаем ноль. Т.е. "0 == 0". Что это, если не true?

Еще рез: книжки -- читать; траву -- курить. Не наоборот. :)
 
Сверху