Скорость зависит от того, какой массив вы проверяете. Если массив содержит значение , отличное от null, "" или 0
if (isset(..) || array_key_exists(...)){
}
приведенный выше код будет быстрее, поскольку isset
будет проверен, а затем выполненный код. Array_key_exists
не будет запущен.
Если массив содержит значение null, "" или 0, тогда будет проверено isset
, а затем array_key_exists
.
Это займет больше времени, чем простое тестирование для array_key_exists.
Так что вопрос, который быстрее, во многом зависит от проверяемого массива.
Многие люди говорили, что это не имеет значения. Они не объяснили, почему это не имеет значения. Я предполагаю, что они означают, что улучшения скорости настолько минимальны, что не стоит беспокоиться об этом. Они также могут означать, что то, что быстрее, зависит от значений, присвоенных в вашем массиве (и, следовательно, каждый раз различается.)
В конечном счете, если вы знаете, что большинству клавиш будут присвоены значения, отличные от нуля, "" или 0, и вам действительно необходимо определить, когда назначены нулевые значения, используйте
if (isset(..) || array_key_exists(...)){
}