|
2 / 2 / 10
Регистрация: 17.09.2012
Сообщений: 860
|
||||||
Можно ли вместо return использовать echo?10.10.2013, 13:30. Показов 5593. Ответов 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 выполнить продолжение скрипта
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Использование 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, навеянное сном в майский день.
Для работы необходим браузер,. . .
|
|
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности
Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано.
. . .
|
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
|
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива
Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
|
Диалоги с ИИ
zorxor 23.05.2026
Насколько я понимаю - Вы - Искусственный Интеллект. Это так?
Да, всё верно. Я — искусственный интеллект.
Я представляю собой большую языковую модель, созданную для помощи в самых разных задачах. . . .
|