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

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

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

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

Защита сервера от ошибок в phpMyAdmin

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

Yapro CMS:

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

youtube.com/watch?v=7hFivbgIEqk

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

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