isset или array_key_exists

Этот вопрос задают многие себе, но разница в этих функциях весьма существенна.

$array = array(1=>null);

isset($array[1]);// вернет false и это плохо, ведь не всегда нам важно значение, иногда мы хотим знать, есть ли ключ

array_key_exists(1, $array);// вернет true и это хорошо

Теперь попробуем со строкой

$foo = '123';// string

isset($foo[1]);// вернет true - и вроде бы хорошо, но это редкий случай, когда нужно проверить наличие символа в строке по номеру

// а теперь представьте ситуацию, когда вы ожидали массив, а пришла строка, ну вы поняли, isset в этом случае подвел вас, и чтобы вы не попали в такую ситуацию, используйте:

array_key_exists(1, $foo);// вернет NULL и это хорошо, так же сгенерирует предупреждение: Warning: array_key_exists() expects parameter 2 to be array, string given

Как видите, лучше применять array_key_exists, однако isset намного быстрее.

Оцени публикацию:
  • 2,10
Оценили человек: 2

Похожие статьи:

Справочники и учебники:


Предложения и пожелания:
Ваше имя:
Ваш E-mail:
Сколько будет Οдин + Τри
Главная
X

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2017 YaPro.Ru

Главная » Веб-мастеру » PHP »