array_search как проверить с возвращаемым значением

zey_ser

Новичок
Приветствую всех! В документации написано про array_search
Внимание Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE.
А если у меня найденное значение под ключом 0, то у меня к false приведется? Правильно ли я делаю проверку в случае ниже?
PHP:
$haystack =  array('29','30');
$needle = array('28','29');

foreach ($needle as $key => $value) {
    if (false !== (array_search($value, $haystack))) {
        echo 'Yes' . '<br/>';
    } else {
        echo 'No' . '<br/>';
    }
 

AnrDaemon

Продвинутый новичок
Вообще-то там именно этот момент в примерах подробно разобран…
 

zey_ser

Новичок
Функция сама определяет приводить тот же ключ 0 к false или нет? Тоесть возвращаться может не только false но и к примеру тот же 0 при неудаче, который приведется к false. Но если у нас нашелся ключ = 0, не может ли функция вернуть false?
 

Andkorol

Новичок
Функция сама определяет приводить тот же ключ 0 к false или нет? Тоесть возвращаться может не только false но и к примеру тот же 0 при неудаче, который приведется к false. Но если у нас нашелся ключ = 0, не может ли функция вернуть false?
Не путай значение, которое возвращает функция – и то, как это значение может быть интерпретировано при сравнении.
Если найдено значение с ключом = 0 – то функция вернет только 0.

Выражение «не-boolean значение, которое приводится к FALSE» означает следующее:
PHP:
php > var_dump(false == 0);
bool(true)
php > var_dump(false === 0);
bool(false)
Другими словами, при проверке нестрогого равенства (==) 0 эквивалентен FALSE.
А при проверке строгого равенства (===) – нет.
 
Сверху