Valick
11.08.2013 - 16:57
Rand, тогда уж
if(is_array($arr)) {if(in_array(...))}
но если $arr не существует, то получим нотис,
а иногда массив объявляют заранее и в таком случае он будет существовать, но будет пустым, что тоже не гуд
_____________
Стимулятор ~yoomoney - 41001303250491
Valick
Выделять или нет, зависит от кода, который будет ниже. Принципиальной разницы нет.
Valick
11.08.2013 - 17:11
Цитата |
Принципиальной разницы нет. |
Valick
11.08.2013 - 17:53
Rand, это вызов? Мне написать код и поясняющие разницу комментарии для тех кому лень запустить?
_____________
Стимулятор ~yoomoney - 41001303250491
Valick
Нет, это похвала. Ты ведь этого ждал когда писал замечание. А если тебе так хочется кому-то что-то доказывать, почему не расписал всё ещё 2 поста назад?
Valick
11.08.2013 - 19:11
Цитата |
Нет, это похвала. Ты ведь этого ждал когда писал замечание |
это не похвала, а сарказм
а если уж я чего-то и ждал, достаточно было банального "а, ну да", либо вообще не реагировать на такое мелкое замечание, которое в принципе для начинающего очень даже имеет смысл.
_____________
Стимулятор ~yoomoney - 41001303250491
Valick
Я не могу соглашаться с тем, что находится у тебя в голове, а не в постах в этой теме. Есть замечания, пожалуйста приводи аргументы, а так ты только флейм разводишь.
Valick
11.08.2013 - 19:26
Rand, ну каие еще аргументы

вы же не "первый класс вторая четверь", что бы вам рассказывать разницу между
этим if(is_array($arr) && in_array(...))
и этим if(is_array($arr)) {if(in_array(...))}
_____________
Стимулятор ~yoomoney - 41001303250491
Valick
Ок, дабы не флеймить в лс.
Valick
11.08.2013 - 20:41
Rand, в данном случае я действительно не прав (по крайней мере на свежей версии РНР)
if(is_array($arr) && in_array($a,$arr)) не выводит предупреждение из-за того что $arr в in_array не массив.
_____________
Стимулятор ~yoomoney - 41001303250491
mmsgold
11.08.2013 - 21:30
Цитата |
(по крайней мере на свежей версии РНР) |
не выведет предупреждение в свежей версии? если нет массива в
is_array($arr) и
in_array($a,$arr) и в этом случае? а раньше выводил? теперь так работает интерпретатор?
Valick
11.08.2013 - 22:04
mmsgold, именно при условии
is_array($arr) && in_array($a,$arr) если переменная $arr объявленна но она не массив
если поменять местами
in_array($a,$arr) && is_array($arr), то так выведет предупреждение
_____________
Стимулятор ~yoomoney - 41001303250491
Вообще то с массивами легко и непринужденно работает empty()
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (Valick @ 12.08.2013 - 00:04) |
если поменять местами in_array($a,$arr) && is_array($arr), то так выведет предупреждение |
Да. Выражения стоящие после логического "И" вычисляются только тогда, когда выражение перед ним возвращает true, в противном случае сразу возвращается false. Поэтому, даже логически менять местами здесь не было бы смысла - вначале делать что-то с массивом, а потом проверять, а существует ли он вообще.
Цитата (twin @ 12.08.2013 - 09:49) |
Вообще то с массивами легко и непринужденно работает empty() |
Как вариант. Если уверен, что кроме массива и нуля там ничего быть не может и необходима дополнительная проверка на существование переменной.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.