if ( 55 == "055p" )

Andrew z

Новичок
if ( 55 == "055p" )

PHP:
<?

if ( 55 == '055p' ) echo 'yes';
else echo 'no';

?>
Ответ: yes.

Объясните почему?
 

Frol

Новичок
Welcome to PHP! =)
все это прекрасно описано в мане: почему так и как этого избежать.
 

Denix

Новичок
Могу предположить что приводятся типы.
Т.е. фактически из второй строки выдирается 55 и сравнивается с первым числом.

Юзай ===
 

Goldwood

Новичок
<?php
if( @$_REQUEST['55'] == "055p" ) {
$kw = "yes";
}

-~{}~ 09.02.06 08:51:

Andrew z, или то что тебе нужно, воще не REQUEST?
 

white phoenix

Новичок
[m]intval[/m], [m]strval[/m], [m]language.types.type-juggling[/m] (^^).
PHP:
$first = 55;
$second = '55р';
var_dump(strval($first) == $second);
// bool(false)
Суть очень простая, сравнивать 1 == '1 рубль', всё равно что сравнивать 1 == intval('1 рубль').
PHP:
var_dump(intval('1 рубль'));
// int(1)
А если нужно сравнить два значения обращая внимание на их тип, используйте ===.
 

Andrew z

Новичок
Автор оригинала: Goldwood
PHP:
<?php
if( @$_REQUEST['55'] == "055p" ) {
$kw = "yes";
}
?>
Вот именно этот случай.

Аналогичная проблемы возникает и SQL-запросом типа:
SELECT * FROM table WHERE id = '05'
таким образом будет найдена запись с id=5, если она конечно будет в таблице.
 

Фанат

oncle terrible
Команда форума
никакой проблемы нет
зачем ты собрался искать в таблице несуществующую запись с id='05'?
 
Сверху