Войти

Показать полную графическую версию : PHP|Функции для проверки существования ключа в массиве


vadimiron
10-08-2005, 15:22
Есть такая функция: array_key_exists("key",$array); С её помощью можно проверить, есть в данном массиве искомый ключ.
Но такой же эффект можно же достичь с помощью isset($array("key")).
Есть ли между ними какая нибудь разница??
Например: отличие обоих от empty() я понимаю, а вот есть ли различия между ими, не знаю

XCodeR
10-08-2005, 16:23
если память не изменяет то array_key_exists перебирает все ключи и сверяет с переданным ей, если не находит совпадения - возвращает 0..

isset же просто проверяет существует ли переменная, что в теории быстрее.

хотя, конечно, могу ошибаться, т.е. имхо....

Prisoner
11-08-2005, 10:12
Тут смысл, имхо, разный:

isset - проверяет наличие переменной, означена ли она каким-либо значением.
array_key_exists - проверяет наличие ключа или индекса.

В случае с массивом, ясный день, что они будут выдавать одно и тоже значение, и только лишь в одной ситуации разойдутся во мнениях: $a = array('some_index' => NULL); isset($a['some_index']) вернет false, a array_key_exists('some_index', $a) - true. А ведь NULL значение порой очень необходимо, к примеру запросы в БД могут возвращать NULL значения столбцов и когда результаты fetch'утся как ассоциативные массивы, то и возникает ситуация 'some_index' => NULL.

vadimiron
11-08-2005, 12:42
а я и забыл про NULL, только на FALSE проверял :) Сенкс




© OSzone.net 2001-2012