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

Новые заметки:

Про что мы забываем когда делаем оценку задачи по времени

Список вопросов для собеседования разработчика по телефону

Symfony2 авторизация без Doctrine2 для чайника

Phpstorm7 LiveEdit

Жесткий хабр или не хабр, тогда кто?

Яндекс.Деньги мошенничество

Как узнать какие страницы в поиске яндекса или это секрет

Последние комменты:

Yapro CMS:

Здравствуйте, Гость | Войти | Регистрация | Карта сайта | RSS ленты | Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter

youtube.com/watch?v=7hFivbgIEqk

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

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