PHP: Занимательное преобразование типов

Сегодня ночью со мной приключилась белка..
Как вы думаете, какой результат будет после выполнения этого куска кода?
$a = "Day=17,Month";
$b = (int) $a;
$c = $a == (int) $a;
$d = $a == $b;
var_dump($a, $b, $c, $d);


Скорее всего совсем не тот, который вы ожидали увидеть:
string(12) "Day=17,Month"
int(0)
bool(true)
bool(true)

Второй пример — наш случай:
$a = "Day=17,Month";
$b = (int) $a;
$c = $a == (string)((int) $a);
$d = $a == $b;
var_dump($a, $b, $c, $d);

Результат поражает:)
string(6) "Day=17,Month"
int(0)
bool(false)
bool(true)
test

Вот такие простые истины полвторого ночи…

Полезные ссылки (php.net):

Posted Сентябрь 17th, 2009 in Без рубрики.

Comments are closed.