|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
|
whatisnot |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 130 Регистрация: 14.12.2014 Репутация: 1 Всего: 2 |
Это вы себя спросите, чем удобнее var_dump, если нужно знать только структуру? Ничем. Беда автора не в том, что они использовал print_r, а в том, что он не знает как ее правильно использовать. Все остальное, это просто демагогия. |
|||
|
||||
krundetz |
|
|||
Вечный странник Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
Я вас спрашивал. Но раз вы настаиваете повторю свои аргументы за использование var_dump вместо print_r 1. вывод print_r не всегда очевиден. 2. есть аналоги с более очевидным выводом. 3. новичку легче научиться пользоваться 1-ой функцией чем 2-мя, особенно когда он толком не понимает многих особенностей языка. 4. новички используют print_r согласно мануалу для вывода удобочитаемой информации о переменной, а не только для просмотра структуры массива. Только вот есть пункт 1. Вы меня уже в чем только не обвинили, и в философии на голом месте, и в том что я вам пудрю мозги, и в том что путаю мух с котлетами, и в том что доводы у меня от лукавого, теперь вот в демагоги записали. Может лучше аргументы за print_r приводить будете, или контраргументы для var_dump? |
|||
|
||||
whatisnot |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 130 Регистрация: 14.12.2014 Репутация: 1 Всего: 2 |
Опять демагогии на целый том. Вы чем забиваете гвозди, надеюсь молотком, а не пневмомолот? Товарищу просто надо знать как правильно структуру массива отобразить, и это все. Я никоим образом не против функции var_dump, а просто не понимаю когда делают заявления, которые по сути к проблеме отношения не имеют.
|
|||
|
||||
krundetz |
|
|||
Вечный странник Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
1. Я подсказал ТС вариант который считаю оптимальным для решения его проблем 2. Я по вашей замечу просьбе несколько раз обосновал свою точку зрения 3. Вас она видимо не устраивает, но аргументов вы не приводите 4. Зато пишите куча обвинений в мой адрес уж точно не по сути проблемы 5. Если вы что то не понимаете то ЭТО ВАШИ ПРОБЛЕМЫ Внимательный читатель выводы сделает. На этом нашу дискуссию считаю закрытой. |
|||
|
||||
whatisnot |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 130 Регистрация: 14.12.2014 Репутация: 1 Всего: 2 |
Было бы что читать Я ведь не потому написал, чтобы уколоть, а потому, что замечание о неудобности было не к месту. Это как рассуждать о жизни на Марсе, когда этого не требуется.
И согласен, это пустой разговор - PRE -> функция, все что надо было, а уж какая из них не суть важно. Это сообщение отредактировал(а) whatisnot - 10.4.2018, 14:12 |
|||
|
||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: 6 Всего: 12 |
В плюс к предыдущему оратору - var_dump например дампит стримом, а print_r сначала в памяти собирает.
Чем это грозит ? Если в браузер "вардампнишь" объект с НЕОЧЕВИДНЫМИ рекурсивными ссылками - пиши пропало, считай комп надо перезагружать. print_r же просто ругнется на нехватку памяти (если конечно memory_limit выставлен) Ну для проверки можете дампнуть какой нибудь Entity доктриновский Это все при условии что на локальном компе разработка идет (php -S). За сервак я боюсь отвечать при таких условиях ) Это сообщение отредактировал(а) _zorn_ - 10.4.2018, 15:52 |
|||
|
||||
krundetz |
|
|||
Вечный странник Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
1. интересная информация, вот ради этого и велась вся полемика с whatisnot. 2. с таким поведением не сталкивался, возможно из-за xdebug, он вроде регулирует поведение var_dump 3. можно пруф на подробное описание, а то что то google ничего не выдает |
|||
|
||||
whatisnot |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 130 Регистрация: 14.12.2014 Репутация: 1 Всего: 2 |
Полемика непонятная. Можно долго говорить о достоинствах или недостатках чего-то, это одно и имеет место быть в рамках как раз отвлеченной полемики. Подвергать же критике одно, говоря о достоинствах другого в контексте когда ни одно из этого не применяется по назначению (как следует), это уже не полемика, а болтовня. Обе этих функции предполагают форматированный вывод, поэтому в них содержится код перевода строки и пробелы для отступов, при этом var_dump использует два пробела на один уровень, а print_r четыре. Если бы вывод данных функций производился в Блокнот, тогда бы и разговоров не было. Но в данном случае все в контексте веб, блокнотом является браузер, и это не текст, а html, а перевод строки в нем трактуется как пробел. Это нужно знать и понимать, тогда еще до вывода знаем, что получим не то, чего хочется, и не важно какую функцию будем использовать. Задачей является вычисление "адреса", а в потоке строки вычислить его сложно, хотя и можно. На каком основании при этом можно утверждать, что одно лучше или хуже другого? Тут ведь ошибка не в применении "нужной" функции, а в представлении результата работы функции, который не дает ответа на вопрос - "где живет адресат?". Это ведь абсурдно, также, как если бы перемешать дома какого либо квартала, и поэтому не найдя в нем нужного дома, утверждать, что если бы перемешивали против часовой стрелки, то было бы лучше. Если же говорить отвлеченно, то даже в этом случае некорректно утверждать, что одна функция лучше другой, просто каждая из них выполняет то, что ей и предписано. Print_r удобнее для представления структуры хотя бы уже потому, что четыре пробела на отступ, а это табуляция по умолчанию, и стилем расстановки фигурных скобок. Var_dump к тому же выводит типы с переносом на новую строку, что несколько осложняет восприятие структуры массива. В силу того, что print_r использует память ее вывод можно перехватить в переменную, что можно использовать для простой отладки в ajax-запросах. При этом если для просмотра используется alert, то достаточно просто echo print_r(array, 1), но и не проблема добавить в строку и тег pre. Но если нужно просмотреть типы в массиве, то только глупец может утверждать, что print_r для этого удобнее, ибо она просто не делает этого. А это об иной функции, хотя если развести полемику ненужную, то также можно говорить долго, доказывая, что одно лучше/хуже другого. Это не редко наблюдаемое явление - $row = ...fetch_array($result) без указания того, что нужно, хотя используется только ассоциативный набор. Это при том, что есть и fetch_assoc(). И такая банальная привычка приводит к банальным ошибкам, над которыми героически борются на клиенте, вместо того, чтобы использовать грамотно fetch_array() или же вместо нее fetch_assoc(). Но можно ли в этом случае утверждать, что fetch_array() неудобная функция? Утверждать конечно же можно, но только если ради рассмешить ежика. Матчасть изучать надо, вот в чем суть, а полемизировать в таких случаях вредно, ибо это может утвердить в сознании начинающего неверное представление или даже пагубное убеждение. В этом была суть моего вопроса - чем одно, лучше другого. Это сообщение отредактировал(а) whatisnot - 12.4.2018, 10:27 |
|||
|
||||
krundetz |
|
|||
Вечный странник Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
||||
|
||||
whatisnot |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 130 Регистрация: 14.12.2014 Репутация: 1 Всего: 2 |
Да, но это если ради полемики, говоря о каких-то достоинствах/возможностях функции, а в контексте не надлежащего ее использования, это не имеет никого значения. Тут нет подвоха - alert выводит текст как есть, то есть, если в тексте есть перевод строки, то будет вывод в новую строку, и учитываются все пробелы, поэтому достаточно просто вывести результат функции. Но если, к примеру, в клиентском сценарии ответ сервера выводить на страницу, то будет тоже самое, что и у автора поста, поэтому и требуется обрамлять тегом PRE, а чтобы не делать добавок ради этого в клиентском сценарии, это же мелкая отладка, то выгоднее это сделать на сервере. PS. Кстати, может попадалось на глаза такое чудо, когда производят вывод в браузер так?
Видимо тоже надеются, что увидят красоту в нем. А такими примерами изобилует и руководство РНР на официальном сайте, и хоть бы для приличия тег PRE был упомянут, ан нет, вот и растут ноги проблем всяких, а читать же лень. ) Это сообщение отредактировал(а) whatisnot - 12.4.2018, 20:39 |
|||
|
||||
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |