Логика сравнения

young

Новичок
Логика сравнения

Я опять чего-о не понимаю?

PHP:
$a = "011"; $b = "11"; 
if ($a == $b) {echo "1";} else {echo "2";}
Выдает 1???
 

Кром

Новичок
Так PHP устроен. Если строка вычисляется как числовое значение (при арифметических и логических операциях), он ее конвертит.
Такой-же "глюк" попадается в switch() если не знать о конвертации.
См. конвертацию строк в мануале.
 

Сергей123

Новичок
А есть в мане прямое указание, что при выполнении Comparison Operators (в частности = =) строки приводятся к целым?
Не могу найти что-то пока...
 

Сергей123

Новичок
Кром, спасибо, но не то, по-моему.
Объясняется КАК строки приводятся к целым.
Я имел ввиду, - ПОЧЕМУ в этом случае они приводятся к целым. Не могу пока найти где указано, что = = требует целых даже в случае когда оба параметра строки.
 

Кром

Новичок
Бресь Сергей
Для того, чотбы понять этот вопрос нужно применить индуктивный метод :)
В данном случае, все что относится к общему, применимо к частному.

>ПОЧЕМУ в этом случае они приводятся к целым

Потому, что ВСЕГДА приводиться к целым.
(When a string is evaluated as a numeric value, the resulting value and type are determined as follows.)
 
Сверху