Проверить, существует ли ключ массива и соответствует ли он той же команде?

В JavaScript можно проверить myObject.key чтобы увидеть, есть ли значение (не определено) а также truthy.

if (myObject.key) ...

Есть ли эквивалент в PHP? Или я должен продолжать писать код, такой как isset(my_array['key']) && my_array['key'] добиться желаемого результата? Я чувствую, что это нарушает СУХОЙ и выглядит некрасиво.

0

Решение

В php есть три «уровня» проверки:

  1. array_key_exists ($ key, $ array) — http://php.net/manual/en/function.array-key-exists.php

Проверяет, существует ли ключ в массиве. Возвращает true, даже если значение равно нулю

  1. isset ($ array [$ key]) — http://php.net/manual/en/function.isset.php

Проверьте, существует ли ключ и не является ли он нулевым. Возвращает true, если значение существует и не является нулевым, но это может быть bool (false), int (0), строка «» и т. Д.

  1. !пусто ($ array [$ key]) — http://php.net/manual/en/function.empty.php

Проверьте, существует ли ключ и является ли он верным, возвращает false для bool (false), int (0), несуществующих ключей и null, но true для bool (true), int (1), int (-1), строка с длина> 0 и так далее. На самом деле функция пуста (), но часто используется и отрицается. Это должно быть то, что вы ищете.

8

Другие решения

Вы можете использовать оператор подавления ошибок @:

if (@$_GET['fantasyvar']) {
//$_GET['fantasyvar'] is set and truthy
}

Обратите внимание: это не очень хороший стиль и сделает отладку более сложной для вас.

-2

По вопросам рекламы [email protected]