Неожиданная работа функции in_array в php

Недавно обнаружил, что в моем скрипте функция in_array() выдает неверное на первый взгляд значение. Т.е. в параметрах ее задаю явно не существующий элемент массива, а она упорно возвращала значение TRUE, мол значение это есть в массиве. Оказалось все просто. В массиве по которому ведется проверка есть элемент 0, а значение которое проверялось на присутствие в массиве — строка, которая при приведении типа приводилась к 0.


$array = array('one', 'two', 0);
var_dump(in_array('three', $array));

Для того чтобы in_array() еще производила проверку типа, нужно третьим параметром передать ей TRUE. 


var_dump(in_array('three', $array, TRUE));

Все таки документация, вещь полезная и нужная.

Всем привет!

Добро пожаловать в мой блог! 🙂 Я всетаки созрел на собственный блог. Буду здесь  писать заметки для самого себя(а может и не только для себя) по всяким web штукам интересным, которые мне могут пригодиться в будущем. А может и не только по web штукам.