Как лучше производить проверку наличия ключа в массиве?

iamFake

Mind Of Liberty
MiksIr
Еще раз предлагаю прочесть мои посты, я не говорил, что запрещено использование этой функции, но говорил, что она не всегда будет выдавать верный ответ.
Разговор сходится к тому, что я тебе о том, что подушки безопасности спасают жизнь, а ты мне про медленную скорость запорожца.
если уж говорить в таком ракурсе - то MiksIr говорит, что медленный запорожец или быстрый - зависит от программиста, а вы говорите о том, что подушки безопасности спасают жизнь их конструктора, ибо пока он их делает - его не уволят...

кроме того ваша фраза "Фанат, полез не в ту степь, попытался привести пример, который не проверил" - это вы полезли не в ту степь, т.к. он именно указал на возможность возврата "не верного результата", а вы "не проверил"... че к чему?
 

alen

Новичок
iamFake
Можно дискутировать на эту тему много. Но...
1) Тема у нас: "Как лучше производить проверку наличия ключа в массиве?"
Тут не я один указал на неточность в работе isset которые нужно учитывать (null и сам аргумент), если вести разговор, что я не прав, то хочу услышать ответ на вопрос, когда я утверждал, что вообще нельзя использовать isset для этих целец?
2) С Фанат, действительно я сделал поспешные выводы по поводу его поста и не понял, что он хотел сказать - за это извиняюсь.

P.S. Еще раз повторюсь, я ни кого не призываю использовать функции array , в большинстве своих задач сам использую isset , но нужно быть внимательным, сам сталкивался с данной проблемой, поэтому и акцентирую внимание.
 

Adelf

Administrator
Команда форума
>> Как лучше производить проверку наличия ключа в массиве?

При такой постановке вопроса ответ очевиден - array_key_exists.

А вообще - недавно сам перешел на array_key_exist. Хоть и не бывает у меня обычно в массивах null-значений.. Основной аргумент следует из кода Фаната. Если я проверяю массив - хочу чтобы это точно был массив и не хочу лишний раз is_array юзать.
 

iamFake

Mind Of Liberty
я ничего не утверждал, я подчеркнул, что вы оба спорите о том, о чем не спорят... один говорит что надо учитывать возможность не верного результата, что есть правильно, второй что _нормальный_ программист не дойдет до этой ошибки, что тоже есть правильно - о чем собсно спор? вот и я о том-же - ни-очем =)

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

MiksIr

miksir@home:~$
А вообще - недавно сам перешел на array_key_exist. Хоть и не бывает у меня обычно в массивах null-значений.. Основной аргумент следует из кода Фаната. Если я проверяю массив - хочу чтобы это точно был массив и не хочу лишний раз is_array юзать.
А на варнинги плевать, ага. Настоящие программисты отключают варнинги ;)
 

Adelf

Administrator
Команда форума
MiksIr
некоторые отключают. Я не всегда могу уследить за юзерами моего кода.
 

alen

Новичок
is_array в любом случае придется применять, но на сколько я слышал (не проверял), когда функции array ловят массив кэшируется путь к нему и значение, т.к. происходит не только проверка массива, но и его анализ, поэтому и производится учет нулевого параметра? В следствии, если утверждение действительно верное, при использовании следующей функции из array, если сам массив не изменялся, будет обработан гораздо быстрее. Следовательно, если это действительно так, то скорость связки двух проверок будет примерно одинаковой.

P.S. Вообще чтоб говорит о быстродействии, нужно проверять работу при разных условиях и один тест не даст никаких результатов. Это не по конкретному случаю, а вообще на будущее. По этому случаю функции array действительно из за анализа массива работаю немного дольше, но в реальности они не решают огромной роли в настоящее время, вся нагрузка и время уходит на SQL
 

alen

Новичок
Adelf
Ну отключать - это вообще плохо, нужно все проверять!
 
Сверху