То ли воздух нынче пьян, то ли леший нынче рьян...

Фанат

oncle terrible
Команда форума
PHP:
$a = "8";
$b = "000000008";
var_dump($a, $b, $a == $b);
я, наверное, туплю, но это-то с какого перепугу?
 

Absinthe

жожо
Навряд ли строки при сравнении должны до чего-то преобразовываться... Похоже на баг.
 

Yaponchick

Новичок
Код:
PHP 5.3.23 (cli) (built: Apr  4 2013 21:32:58) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
    with Xdebug v2.2.2, Copyright (c) 2002-2013, by Derick Rethans

string '8' (length=1)
string '000000008' (length=9)
boolean true
Злобный баг
 

Ragazzo

TDD interested
Pestilence
какая суть? что не дочитали ман до конца? по-моему данное преобразование наиболее ожидаемое для программиста, да, есть еще такой метод. Не вижу проблемы тут. :)
 

Ragazzo

TDD interested
Absinthe
ты придрался к названию заголовка, не поняв суть, ок. :)
 

Absinthe

жожо
Ragazzo что ты имеешь ввиду под 3 пунктом? Я не увидел там явного определния пунктов.
Подумал, что ты говоришь о приведении типов при сравнени разных типов, что не подходит под данную ситуацию (тип то одинаков).
Поясни.
 

Фанат

oncle terrible
Команда форума
Absinthe
я так понял, что приведение происходит всегда, какие бы типы не сравнивались
но я тогда не понимаю принципа, по которому оно действует.

я это вижу так:
- смотрим, а не ctype ли digit (скорее даже - is_numeric) у нас строка?
- если да - то конвертим в нумбер
- если нет - ну хрен с ней, будем сравнивать какстроки.
 

Absinthe

жожо
я не знаю что пояснить, в таблице итак четко написано как сравниваются типы операторов.
В таблице указано сравнение для разных типов. Оно не применимо к данной ситуации (типы одинаковы). Точка.

Не увидел, где. Там просто ссылка на функцию, лишь косвенно относящуюся к вопросу.
 

Absinthe

жожо
я так понял, что приведение происходит всегда, какие бы типы не сравнивались
Не согласен. Иначе бы мы все знали место в документации, где об этом написано.
 
Сверху