Задать вопрос
PANOV_DEV
@PANOV_DEV

Как улучшить код, который проверяет наличие элемента в массиве и его значение?

Хочу проверить, существует ли данный ключ в массиве если да, то проверяем, значение его истинно или нет, если да то что-то делаем.

Мой код, задача работает, но хочу как-то его сократить. Искал функции для работы с массивами, но ничего не нашёл. Готовый вариант мне не нужен, просто нужна функция и немножечко намекните.

if (isset($arr['test']) && $arr['test'] === true) {
 // todo
}
  • Вопрос задан
  • 190 просмотров
Подписаться 1 Простой 3 комментария
Ответ пользователя Ипатьев К ответам на вопрос (3)
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Тут вопрос не столько в сокращении сколько в осмысленности.

И ответ зависит от двух вводных, которые мы не знаем:
1. по какой причине элемент 'test' может отсутствовать
2. какие ещё значения могут быть у $arr['test']

Если совсем всё равно на всё и пишем говнокод-стайл лишь бы покороче, то, как правильно написано в соседнем ответе - empty().

Если элемент обязательно должен присутствовать, то либо убираем проверку на isset совсем, либо - если это интерактивное приложение - выносим отдельно, и при отсутствии элемента сообщаем об ошибке. Пусть даже и тупо 400 кодом.

Если у $arr['test'] не могут быть другие значения, кроме true, то тоже проверить, и выбросить ошибку, если значение какое-то другое.
Ответ написан
Комментировать