Цитата (Rand @ 12.08.2013 - 04:27) |
Как вариант. Если уверен, что кроме массива и нуля там ничего быть не может и необходима дополнительная проверка на существование переменной. |
Не нужна дополнительная проверка, в том и фишка. empty() проверяет не только на 0, но и
пустоту массива. И не выкидывет нотисов, если переменная не определена.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Valick
12.08.2013 - 09:34
Цитата |
логически менять местами здесь не было бы смысла |
это только в качестве примера
_____________
Стимулятор ~yoomoney - 41001303250491
twin
Я это и подразумевал.
Цитата |
и необходима дополнительная проверка на существование переменной |
В эту фразу я вкладывал значение, что если помимо всего прочего необходимо проверить, объявлена ли вообще переменная, то можно использовать empty вместо is_array. Я не писал, что нужно делать проверку отдельно от empty. Я уже давно на форуме и мануалы читаю каждый день, вы не так меня поняли.
Michael
12.08.2013 - 10:17
offtop
Valick, как обычно поражает своим воинствующим нубством:
Цитата (Valick @ 11.08.2013 - 17:26) |
Rand, ну каие еще аргументы вы же не "первый класс вторая четверь", что бы вам рассказывать разницу между этим if(is_array($arr) && in_array(...)) и этим if(is_array($arr)) {if(in_array(...))} |
Это эпично. Поздравляю. Вы сдали экзамен в первый класс, первую четверть.
_____________
There never was a struggle in the soul of a good man that was not hard
Valick
12.08.2013 - 10:21
Rand, а если переменная существует но она не массив, как тогда поведет себя in_array, если взамест is_array мы юзаем !empty?
_____________
Стимулятор ~yoomoney - 41001303250491
Valick
Цитата (Rand @ 12.08.2013 - 10:27) |
Как вариант. Если уверен, что кроме массива и нуля там ничего быть не может |
В противном случае вылезет Warning
Michael
12.08.2013 - 10:29
Цитата (Valick @ 12.08.2013 - 08:21) |
Rand, а если переменная существует но она не массив, как тогда поведет себя in_array, если взамест is_array мы юзаем !empty?  |
empty это twin предлагал, вот его и вопрошай, почему вопросы к Rand, это же не его идея. Вопрос то на подколку, ясен перец будет варнинг, но бэдовое решение twin то толкнул, а подколоть пробуешь Rand-а.
_____________
There never was a struggle in the soul of a good man that was not hard
Valick
12.08.2013 - 10:46
Michael, вам просто везде мерещится
толи большая толи малая медведица заговор, но мне плевать на это, как и на ваше мнение Эксперта.
Да я ошибся, потому, что я обычный человек, а обычным людям свойственно ошибаться. Но я взял написал код, проверил и отписался в теме о своей ошибке, хотя любой на форуме мог бы сделать то же самое и ткнуть меня в это носом при желании.
И уж поверьте (хотя и на это мне плевать, веришь ты или нет) Rand-а у меня и в мыслях не было подкалывать.
_____________
Стимулятор ~yoomoney - 41001303250491
Michael
12.08.2013 - 11:02
Цитата (Valick @ 12.08.2013 - 08:46) |
Да я ошибся, потому, что я обычный человек, а обычным людям свойственно ошибаться. |
Ты ошибся не потому что ты человек, которому свойственно ошибаться.
А потому что ты плохо усвоил не только основы php, а и основы программирования вообще.
Программист не имеет права не знать таких элементарных вещей. Не понимая элементарных базовых вещей и все остальные решения выйдут говнокодерские. Это очень о многом говорит. А ведь хотел поумничать. Так бы и не опозорился. С вами всегда так бывает. Эх, любители...
_____________
There never was a struggle in the soul of a good man that was not hard
Valick
12.08.2013 - 11:13
Цитата |
Не понимая элементарных базовых вещей |
Цитата |
Но я взял написал код, проверил и отписался в теме о своей ошибке |
Скажи честно, ты совсем дурачёк или патамушта? Как человек не понимающий элементарных базовых вещей может найти свою ошибку, да еще выпимши пол
баночки пива? Что как человек ты говно я уже понял давно и даже не смотрю в твою сторону, но вот все остальное для меня пока "загадка".
_____________
Стимулятор ~yoomoney - 41001303250491
Michael
12.08.2013 - 11:22
Цитата (Valick) |
Как человек не понимающий элементарных базовых вещей может найти свою ошибку |
запустить код на выполнение наконец то догадался и проверил что нес чушь. Величайшее достижение, да. Всегда теперь так делай.
Цитата (Valick) |
да еще выпимши пол баночки пива? |
да не оправдывайся, ребенок что ли...
Цитата (Valick) |
но мне плевать на это |
Цитата (Valick) |
хотя и на это мне плевать, |
Плеваться это очень некультурная привычка, характеризующая маргинальные слои общества. Ты ее приобрел вместе со своей татуировкой на лбу?
Цитата (Valick) |
Что как человек ты говно я уже понял давно |
Все, полезло с тебя, хотя твое истинное лицо и уровень я увидел уже давно.
_____________
There never was a struggle in the soul of a good man that was not hard
Michael
А что это за нахер:
Цитата |
но бэдовое решение twin то толкнул, |
Что означает бэдовое? От слова bad?
Ну так почитай внимательно вопрос ТС сначала:
Цитата |
Но если массива нет, то выкидывает ошибку. Как это обойти, массив достаю из БД, а там может быть ни одного поля. |
Где тут хоть полслова о проверке на тип? Где?
Я предложил решение, которое полностью удовлетворяет вопросу, потому что если
массива нет (читаем еще раз вопрос), то is_array() вывалит нотис. И если ТС написал, что из базы достает массив (заметьте, не строку, не число, не объект, а именно массив), значит проверять его на тип вообще глупо. А вот если он есть, но пустой, то нет смысла проверять вхождение. Посему тут конструкция
if(!empty($arr) && in_array(.....))
никакая не бэдовая, а наиболее предпочтительна.
Так что обосрались вы оба, горячие финские парни. Вот какого хрена свару устраивать на пустом месте, как дети малые?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Michael
12.08.2013 - 14:33
to twin:
Ты не совсем в тему со своим empty. ТС же сказал что ему помогло:
Цитата (Медведь @ 11.08.2013 - 16:24) |
Спасибо, просто объявил пустой массив до in_array / как сам не въехал  |
Это и есть самый верный вариант, когда переменные надо объявлять до использования.
_____________
There never was a struggle in the soul of a good man that was not hard
Об этом можно только догадываться. Помогло, значит хорошо. Могло и не помочь, если переменная где-то переопределяется. Вот так к примеру:
Цитата |
$row = mysql_fetch_assoc($res); |
Без цикла. И не поможет тут объявление переменной до. И is_array() не поможет.
Так что все в тему, причем я не настаивал, а просто подсказал одно из возможных и более предпочтительных решений. Что за бэды-шмэды...
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Плохо это все кончится. Закрою ка от греха подальше.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.