PHP немного странный в том смысле, что он обрабатывает строку в числовом сравнении как 0. Вы можете вызвать сравнение строк, заключив переменные в кавычки:
щен тем, с чем столкнулся в сценарии, над которым работал. У меня было следующее:
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
...ПОЧЕМУ??? Я так смущен этим поведением!