Модераторы: [email protected], skyboy, SamDark, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вытащить значение из массива 
:(
    Опции темы
whatisnot
Дата 9.4.2018, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 14.12.2014

Репутация: 1
Всего: 2



Цитата(krundetz @  9.4.2018,  10:47 Найти цитируемый пост)
Последний вопрос такой зачем мне нужна функция print_r, если все тоже самое и даже больше я получу используя var_dump или var_export?


Это вы себя спросите, чем удобнее var_dump, если нужно знать только структуру? Ничем. Беда автора не в том, что они использовал print_r, а в том, что он не знает как ее правильно использовать. Все остальное, это просто демагогия. 
PM MAIL   Вверх
krundetz
Дата 9.4.2018, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



Цитата(whatisnot @  9.4.2018,  15:30 Найти цитируемый пост)
Это вы себя спросите

Я вас спрашивал. Но раз вы настаиваете повторю свои аргументы за использование var_dump вместо print_r

1. вывод print_r не всегда очевиден.
2. есть аналоги с более очевидным выводом.
3. новичку легче научиться пользоваться 1-ой функцией чем 2-мя, особенно когда он толком не понимает многих особенностей языка.
4. новички используют print_r согласно мануалу для вывода удобочитаемой информации о переменной, а не только для просмотра структуры массива. Только вот есть пункт 1.

Цитата(whatisnot @  9.4.2018,  15:30 Найти цитируемый пост)
Все остальное, это просто демагогия. 

Вы меня уже в чем только не обвинили, и в философии на голом месте, и в том что я вам пудрю мозги, и в том что путаю мух с котлетами, и в том что доводы у меня от лукавого, теперь вот в демагоги записали. Может лучше аргументы за print_r приводить будете, или контраргументы для var_dump?


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
whatisnot
Дата 9.4.2018, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 14.12.2014

Репутация: 1
Всего: 2



Опять демагогии на целый том. Вы чем забиваете гвозди, надеюсь молотком, а не пневмомолот? Товарищу просто надо знать как правильно структуру массива отобразить, и это все. Я никоим образом не против функции var_dump, а просто не понимаю когда делают заявления, которые по сути к проблеме отношения не имеют.

    
PM MAIL   Вверх
krundetz
Дата 10.4.2018, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



Цитата(whatisnot @  9.4.2018,  17:51 Найти цитируемый пост)
Опять демагогии на целый том. Вы чем забиваете гвозди, надеюсь молотком, а не пневмомолот? Товарищу просто надо знать как правильно структуру массива отобразить, и это все. Я никоим образом не против функции var_dump, а просто не понимаю когда делают заявления, которые по сути к проблеме отношения не имеют.

1. Я подсказал ТС вариант который считаю оптимальным для решения его проблем
2. Я по вашей замечу просьбе несколько раз обосновал свою точку зрения
3. Вас она видимо не устраивает, но аргументов вы не приводите
4. Зато пишите куча обвинений в мой адрес уж точно не по сути проблемы
5. Если вы что то не понимаете то ЭТО ВАШИ ПРОБЛЕМЫ

Внимательный читатель выводы сделает. На этом нашу дискуссию считаю закрытой.



--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
whatisnot
Дата 10.4.2018, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 14.12.2014

Репутация: 1
Всего: 2



Было бы что читать smile Я ведь не потому написал, чтобы уколоть, а потому, что замечание о неудобности было не к месту. Это как рассуждать о жизни на Марсе, когда этого не требуется. 

И согласен, это пустой разговор - PRE -> функция, все что надо было, а уж какая из них не суть важно.

Это сообщение отредактировал(а) whatisnot - 10.4.2018, 14:12
PM MAIL   Вверх
_zorn_
Дата 10.4.2018, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1008
Регистрация: 21.8.2007

Репутация: 6
Всего: 12



В плюс к предыдущему оратору - var_dump например дампит стримом, а print_r сначала в памяти собирает. 
Чем это грозит ?
Если в браузер "вардампнишь" объект с НЕОЧЕВИДНЫМИ рекурсивными ссылками - пиши пропало, считай комп надо перезагружать. print_r же просто ругнется на нехватку памяти (если конечно memory_limit выставлен)

Ну для проверки можете дампнуть какой нибудь Entity доктриновский  smile 
Это все при условии что на локальном компе разработка идет (php -S). За сервак я боюсь отвечать при таких условиях )

Это сообщение отредактировал(а) _zorn_ - 10.4.2018, 15:52
PM MAIL   Вверх
krundetz
Дата 11.4.2018, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



Цитата(_zorn_ @  10.4.2018,  15:35 Найти цитируемый пост)
В плюс к предыдущему оратору - var_dump например дампит стримом, а print_r сначала в памяти собирает. 

1. интересная информация, вот ради этого и велась вся полемика с whatisnot.
2. с таким поведением не сталкивался, возможно из-за xdebug, он вроде регулирует поведение var_dump
3. можно пруф на подробное описание, а то что то google ничего не выдает


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
whatisnot
Дата 12.4.2018, 10:25 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 14.12.2014

Репутация: 1
Всего: 2



Цитата(krundetz @  11.4.2018,  11:22 Найти цитируемый пост)
вот ради этого и велась вся полемика с whatisnot


Полемика непонятная. Можно долго говорить о достоинствах или недостатках чего-то, это одно и имеет место быть в рамках как раз отвлеченной полемики. Подвергать же критике одно, говоря о достоинствах другого в контексте когда ни одно из этого не применяется по назначению (как следует), это уже не полемика, а болтовня. smile

Обе этих функции предполагают форматированный вывод, поэтому в них содержится код перевода строки и пробелы для отступов, при этом var_dump использует два пробела на один уровень, а print_r четыре. Если бы вывод данных функций производился в Блокнот, тогда бы и разговоров не было. Но в данном случае все в контексте веб, блокнотом является браузер, и это не текст, а html, а перевод строки в нем трактуется как пробел. Это нужно знать и понимать, тогда еще до вывода знаем, что получим не то, чего хочется, и не важно какую функцию будем использовать. 

Задачей является вычисление "адреса", а в потоке строки вычислить его сложно, хотя и можно. На каком основании при этом можно утверждать, что одно лучше или хуже другого? Тут ведь ошибка не в применении "нужной" функции, а в представлении результата работы функции, который не дает ответа на вопрос - "где живет адресат?". Это ведь абсурдно, также, как если бы перемешать дома какого либо квартала, и поэтому не найдя в нем нужного дома, утверждать, что если бы перемешивали против часовой стрелки, то было бы лучше. smile

Если же говорить отвлеченно, то даже в этом случае некорректно утверждать, что одна функция лучше другой, просто каждая из них выполняет то, что ей и предписано. 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
PM MAIL   Вверх
krundetz
Дата 12.4.2018, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



Цитата(whatisnot @  12.4.2018,  10:25 Найти цитируемый пост)
В силу того, что print_r использует память ее вывод можно перехватить в переменную

я так понял речь про второй параметр, установленный в true?

Цитата(whatisnot @  12.4.2018,  10:25 Найти цитируемый пост)
что можно использовать для простой отладки в ajax-запросах.

вот это не понял, ответ и так и так строка, в чем подвох?


Это сообщение отредактировал(а) krundetz - 12.4.2018, 15:21


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
whatisnot
Дата 12.4.2018, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 14.12.2014

Репутация: 1
Всего: 2



Цитата(krundetz @  12.4.2018,  15:20 Найти цитируемый пост)
я так понял речь про второй параметр, установленный в true?


Да, но это если ради полемики, говоря о каких-то достоинствах/возможностях функции, а в контексте не надлежащего ее использования, это не имеет никого значения.


Цитата(krundetz @  12.4.2018,  15:20 Найти цитируемый пост)
вот это не понял, ответ и так и так строка, в чем подвох?


Тут нет подвоха - alert выводит текст как есть, то есть, если в тексте есть перевод строки, то будет вывод в новую строку, и учитываются все пробелы, поэтому достаточно просто вывести результат функции. Но если, к примеру, в клиентском сценарии ответ сервера выводить на страницу, то будет тоже самое, что и у автора поста, поэтому и требуется обрамлять тегом PRE, а чтобы не делать добавок  ради этого в клиентском сценарии, это же мелкая отладка, то выгоднее это сделать на сервере. 

PS. Кстати, может попадалось на глаза такое чудо, когда производят вывод в браузер так?

Код

echo "<option>....</option>\r\n";


Видимо тоже надеются, что увидят красоту в нем. А такими примерами изобилует и руководство РНР на официальном сайте, и хоть бы для приличия тег PRE был упомянут, ан нет, вот и растут ноги проблем всяких, а читать же лень. )     

Это сообщение отредактировал(а) whatisnot - 12.4.2018, 20:39
PM MAIL   Вверх
Google
  Дата 13.12.2019, 18:12 (ссылка)  





  Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, [email protected], skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0831 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.