lina666
@lina666
Изучаю веб ЯП.

Как работает функция in_array?

var_dump(in_array("text", [0,1]));
Объясните пожалуйста почему данный код выдает bool(true), особенно почему in_array возвращает true на не существующий элемент в массиве, или я в чем то ошибаюсь?
  • Вопрос задан
  • 130 просмотров
Решения вопроса 2
villiwalla
@villiwalla
HTML-верстка
Потому что в массиве доя поиска у тебя булево 0 - false, 1 - true. Не пустая искомая строка равна 1 иначе true. Используй флаг сравнения по типам.
Ответ написан
Комментировать
xEpozZ
@xEpozZ
Веб-разработчик
in_array — Проверяет, присутствует ли в массиве значение

https://www.php.net/manual/ru/function.in-array.php

А по вашему кейсу - хз, используйте всегда 3-й параметр strict

var_dump(in_array("text", [0,1], true));
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
или я в чем то ошибаюсь?
ну, для начала в типах, строки с цифрами в неявном виде сравниваете, плохо понимая как работает неявное приведение типов. Хотите четкое сравнение - укажите модификатор третьим аргументом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы