Я знаю, что в PHP можно проверить, находится ли элемент в массиве следующим образом:
if( my_array['item_one'] ){ # some code here... }
Это потому, что если предмет не, то null
значение (равное false
или же zero
) возвращается вместо.
Но это всегда будет работать? Всегда ли будет безопасно делать это таким образом (потому что вы знаете … PHP)?
Эта идиома плохая идея. Во-первых, как отмечено в комментариях, попытка получить доступ к несуществующему значению в массиве приведет к неизвестной ошибке индекса. Во-вторых, и что более важно, 0
а также FALSE
это, безусловно, реальные значения, но вычисление ключей, указывающих на такие значения с помощью фрагмента, который вы предлагаете, будет действовать так, как если бы их не было, что просто неправильно.
Короче говоря, в PHP есть отличный инструмент для проверки, содержит ли массив ключ. array_key_exists. Там нет причин, чтобы не использовать его.
Других решений пока нет …