|
2 / 2 / 10
Регистрация: 17.09.2012
Сообщений: 860
|
||||||
Можно ли вместо return использовать echo?10.10.2013, 13:30. Показов 5598. Ответов 35
Метки нет (Все метки)
собственно вот в чем вопрос имется такая функция
0
|
||||||
| 10.10.2013, 13:30 | |
|
Ответы с готовыми решениями:
35
Вывести символы, используя только три ECHO. Echo '0', Echo '*', Echo '\n' (использовать цикл) return и echo Как использовать if в echo? |
|
349 / 120 / 1
Регистрация: 08.01.2013
Сообщений: 728
|
|||||
| 12.10.2013, 21:52 | |||||
Если какая-то функция не возвращает значимого результата, ее можно назвать процедурой ("function echo_text($text) { echo $text; }"). Причем если она предназначена для того, чтобы осуществлять вывод (и, например, чтобы перенаправить вывод в файл, вести логирование вывода, отправлять вывод на почту итд итп), то заменять ее на функцию получения текста и вывод через отдельную конструкцию как минимум нецелесообразно, это разрушит логику работы программы/скрипта.
0
|
|||||
|
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
|
|||||||||
| 12.10.2013, 22:13 | |||||||||
|
Вы не можете понять что разговор о строке возвращаемой/выводимой из функции? Ну ок... Например я сказал, что return - можно использовать всегда, а echo - не всегда, по этому return, имхо, предпочтительней. Что там где есть return - можно делать что угодно, где echo - что угодно, но через доп код похожий на костыли. Я не говорю что echo - нельзя использовать.
0
|
|||||||||
|
349 / 120 / 1
Регистрация: 08.01.2013
Сообщений: 728
|
|||||||||||||
| 13.10.2013, 00:46 | |||||||||||||
0
|
|||||||||||||
|
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
|
|||
| 13.10.2013, 00:58 | |||
|
Я не пойму, где сказано что так и только так, я даже выделил слово УНИВЕРСАЛЬНЕЙ, раз выделение не помогло, ещё и капсом напишу. Ну да ладно, я напрмиер не пишу такие обёртки echo, если текст нужно отправить в лог, то я сделаю это либо в модели, либо в контроллере, но не из модели не из контроллера я бы не стал выводить этот же текст через echo, на это есть представления. У Вас свой подход, писать такие обёртки ваше право, но я же повторюсь, что речь не о запрете, а о универсальности, чаще всего лучше писать с return и я уже писал что случаи с echo - имеют право на жизнь! просто не так универсальны! Если вы из свой функции вернёте текст или добавите как в Yii переменную говорящую вернуть текст или вывести, от этого код хуже не станет, а универсальности добавиться. Но Вы можете вообще без функций писать, не кто этого не запретит...
0
|
|||
|
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
|
|
| 13.10.2013, 01:26 | |
0
|
|
|
349 / 120 / 1
Регистрация: 08.01.2013
Сообщений: 728
|
||||||||||
| 13.10.2013, 11:41 | ||||||||||
Если тот работодатель или Вы не умеете правильно и однозначно ставить задачи, то не стоит и удивляться решениям этих задач, отличных от ваших.
Добавлено через 6 минут Вы почитайте то, что начали горячо оспаривать: https://www.cyberforum.ru/post5172002.html И потом подумайте хотя бы над названиями гипотетических функций echo_text и get_text. А потом уже говорите о правильности использования return в той и другой.
0
|
||||||||||
|
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
|
||||||||
| 13.10.2013, 12:00 | ||||||||
![]() ![]() Так что не стоит говорить, что если это молоток - то он создан для забивания гвоздей, не любым молотком удобно это делать В конце концов не любой молоток создан именно для гвоздей...Добавлено через 12 минут Само echo в исходном коде пхп - тоже оформлена как функция, естественно что вообще не избавиться от вывода прям из функции. при выполнении echo, будет вызвана какая то функция на сях, которая должна вывести данные. Просто даже при желании не получится сделать так, так как в конце концов какой то функции придётся выводить данные, пусть это будет даже внутри пхп. Ещё раз повторюсь, return универсальней, и в большинстве случаев правильней.
0
|
||||||||
|
349 / 120 / 1
Регистрация: 08.01.2013
Сообщений: 728
|
|||||||
| 13.10.2013, 15:04 | |||||||
0
|
|||||||
|
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
|
|||||||||||
| 13.10.2013, 17:24 | |||||||||||
|
Прошу обратить внимание, что речь не о каком то cgi скрипте, в котором в 90х принято было сразу выводить всё, в том числе и без функций вообще ![]() Я где то сказал что echo - всегда не удобно? Я вообще про удобство не говорю. Я где то сказал что echo - всегда не правильно? Я сказал что если вы напишите в своей функции return - проблем не вызовет в любом случае, максимум - это нужно будет написать одно слово echo перед именем. И заметьте, что делает функция? Логирует на почту и в файл текст. Так следовало бы сменить её имя
Это был вопрос при приёме на работу, на существующий проект. Я сказал что я согласен с ответом, у меня в проектах последние лет 5+ все проекты такие, и я бы не хотел видеть echo раскиданные по моделям, что бы потом искать, где же поправить этот чёртов текст... Если на работу нужен будет cgi программист под пхп3, там скорей всего не будет такого вопроса.
0
|
|||||||||||
|
349 / 120 / 1
Регистрация: 08.01.2013
Сообщений: 728
|
||
| 13.10.2013, 18:21 | ||
|
0
|
||
|
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
|
||
| 13.10.2013, 18:49 | ||
|
То есть для return - сделать вывод, а для вывода сделать возврат данных в переменную. Из это return - то сделать вывод проще по коду и без костылей (удобней). Чем если это echo - сделать получение сложней по коду (неудобно). 1) Если у Вас функция с return, и Вам вдруг понадобилось текст вывести, вы просто дописываете echo перед именем функции. 2) Если у Вас функция с echo, и Вам вдруг понадобилось не выводить текст а просто получить его в переменную, для дальнейших действий, нужно будет либо переписывать функцию, либо городить огород из ob_start ob_get. 1) В первом случае, при добавлении echo перед именем функции, не вызывает неудобств, по коду в других местах изменений не будет. 2) Во втором случае, нужно менять тело функции, или делать обёртку для неё с получением результата вывода в переменную. имхо - это уже костыль. Вот я и пишу, что вторая переделка вызовет не удобства. Что тут не понятного, я не знаю
0
|
||
|
356 / 280 / 22
Регистрация: 27.08.2012
Сообщений: 855
|
|
| 13.10.2013, 20:49 | |
|
Ну как всегда )) На ровном месте Холивар )) Из двух вариантов нет правильного, всё дело вкуса-предпочтений, вариант DrobyshevAlex мне ближе. Даже приведу примеры:
1) функция у Вас определяет цену на товар, которую сразу выводит пользователю на странице в нужном месте, но вот блин запара, введён функционал скидок, должна выводится цена с учётом скидки для пользователя. 2) функция выводила у Вас сообщение об ошибке, но теперь нужно выводить это сообщение в сплывающем окне 3) функция выводила дату d.m.Y, но теперь нужен другой формат для буржуа - m/d/Y P.S. Функции должны быть короткими и как можно более универсальными
0
|
|
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|||
| 13.10.2013, 22:56 | |||
|
[вброс]
Но, раз уж пошла такая пьянка - куда удобнее использовать нечто подобное приведенному здесь уже примеру из фреймворка. Хочешь - выводи. Хочешь - возвращай. Просто измени один флаг при вызове функции. Вернемся к началу [/вброс]
0
|
|||
|
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
|
|
| 13.10.2013, 23:25 | |
0
|
|
|
349 / 120 / 1
Регистрация: 08.01.2013
Сообщений: 728
|
|||||
| 14.10.2013, 11:14 | |||||
А к чему этот нелепый спор. Без понятия ![]()
0
|
|||||
|
217 / 157 / 30
Регистрация: 11.05.2010
Сообщений: 614
|
|
| 14.10.2013, 11:16 | |
|
наша песня хороша, начинай сначала
0
|
|
| 14.10.2013, 11:16 | |
|
Помогаю со студенческими работами здесь
36
Как вместо вывода echo выполнить продолжение скрипта
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
|
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
|
|
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
|
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика
Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
|
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации:
В классе Работник добавить:
накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни
коэффициентПрезентеизма — снижает продуктивность. . .
|
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день.
Для работы необходим браузер,. . .
|