Я смущен тем, с чем столкнулся в сценарии, над которым работал. У меня было следующее:
function getPart($part)
{
$array = array('a', 'b', 'c');
if ($part == 'first') $part = 0;
if ($part == 'last') $part = count($array) - 1;
if (isset($array[$part])) return $array[$part];
return false;
}
$position = 0;
echo getPart($position);
Итак, если бы я попробовал строку «first», я бы получил «a» в качестве вывода. Со строкой «last» я должен получить «c» и так далее. Когда я запускаю скрипт выше, с PHP 5.3 я получаю "c" ...
В замешательстве, я провел быстрый тест ...
var_dump(0 == 'first');
var_dump(0 == 'last');
Оба возвращают TRUE
... ПОЧЕМУ ??? Меня так смущает это поведение!