Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
2 / 2 / 10
Регистрация: 17.09.2012
Сообщений: 860

Можно ли вместо return использовать echo?

10.10.2013, 13:30. Показов 5593. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
собственно вот в чем вопрос имется такая функция

PHP
1
2
3
4
5
6
7
8
9
10
function param_start($title,$action,$id='form',$style='') {
  if (!$id) $id='form'; $winid="win_$id";
  $s=form_start($action,$id,"POST","multipart/form-data");
  if ($title!='') $s.=skin_win_start($title,$style,$winid);
  else $s.=skin_frame_start($style,$winid);
  $s.=<<<CODE
<table class="p" style="width:100%" cellspacing="0">
CODE;
  return $s;
  }
в конце функции стоит оператор возвращения return, можно ли вместо return использовать echo? (просто мне надо переменную $s выводить на экран
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.10.2013, 13:30
Ответы с готовыми решениями:

Вывести символы, используя только три ECHO. Echo '0', Echo '*', Echo '\n' (использовать цикл)
Вывести символы, используя только три ECHO. Echo '0', Echo '*', Echo '\n' (использовать цикл). Рисунок который нужно вывести: ...

return и echo
Возможно вернуть значение текстом? Вот например есть функция function product($id) { if($id == 1) return &quot;Пиво&quot;; ...

Как использовать if в echo?
Здравствуйте! Можно ли использовать конструкцию if вместе с функцией echo? То что есть - . . . echo 'sometext: &lt;input...

35
349 / 120 / 1
Регистрация: 08.01.2013
Сообщений: 728
12.10.2013, 21:52
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
боже...
Боже. Вы постоянно путаете термины. Вот здесь Вы просите вывести возвращаемое значение, а здесь - выводимое. А потом удивляетесь, что Вас не понимают. В терминах разберитесь, ок?

функция — это проименованная часть программы, которая может вызываться из других частей программы столько раз, сколько необходимо. Функция, в отличие от процедуры, обязательно возвращает значение.
Что Вы хотели сказать это отсылкой к вики?

Если какая-то функция не возвращает значимого результата, ее можно назвать процедурой ("function echo_text($text) { echo $text; }"). Причем если она предназначена для того, чтобы осуществлять вывод (и, например, чтобы перенаправить вывод в файл, вести логирование вывода, отправлять вывод на почту итд итп), то заменять ее на функцию получения текста и вывод через отдельную конструкцию как минимум нецелесообразно, это разрушит логику работы программы/скрипта.

Разговор о том что в проекте, где то, есть функция, написанная кем то, и она что то выводит, не важно что, она рендрит шаблон, или это какой то виджет...
Разговор не о том, что где-то в проекте есть функция, а о том, что кто-то считает - использовать вывод непосредственно в функции неверно всегда. И этот кто-то категорически неправ. Более того, вот тут один из собеседников писал, что "Но на самом деле, всё может зависеть от случая." Вы же, почему-то, уперлись в то, что Вам надо то ли вывод, то ли результат функции отправить на почту и рассматривать конкретный случай отказываетесь.

Я же говорю, забудьте... Вы меня не понимаете
Это Вы не понимаете. Забудьте, читайте дальше википедию.
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
12.10.2013, 22:13
Цитата Сообщение от tlittle Посмотреть сообщение
Вот здесь Вы просите вывести возвращаемое значение, а здесь - выводимое
Потому что в моём примере, там возвращаемое значение.
Вы не можете понять что разговор о строке возвращаемой/выводимой из функции? Ну ок...
Цитата Сообщение от tlittle Посмотреть сообщение
Если какая-то функция не возвращает значимого результата, ее можно назвать процедурой
При чём тут процедура, разговор о том, что есть Человек, а есть Ваня Иванов рождённый там то... Так вот Функция - это общее название, как человек... вообщем какой то объект.
Цитата Сообщение от tlittle Посмотреть сообщение
Причем если она предназначена для того, чтобы осуществлять вывод
Цитата Сообщение от tlittle Посмотреть сообщение
то заменять ее на функцию получения текста и вывод через отдельную конструкцию как минимум нецелесообразно
Так а я о чём? Я говорю что бы не пришлось заменять, и используют return, тогда хоть что с результатом делайте, хотите выводите, хотите логируйте, хотите игнорируйте...

Цитата Сообщение от tlittle Посмотреть сообщение
использовать вывод непосредственно в функции неверно всегда.
Где такое написано?
Например я сказал, что return - можно использовать всегда, а echo - не всегда, по этому return, имхо, предпочтительней.

Цитата Сообщение от tlittle Посмотреть сообщение
И этот кто-то категорически неправ.
Приведите пример, чем хуже иметь в функции return или return + echo, чем просто echo. Вот потом поговорим прав кто то или нет.

Цитата Сообщение от tlittle Посмотреть сообщение
Вы же, почему-то, уперлись в то, что Вам надо то ли вывод, то ли результат функции отправить на почту и рассматривать конкретный случай отказываетесь.
Боже, я повторю, что я сказал что return - универсальней.
Что там где есть return - можно делать что угодно, где echo - что угодно, но через доп код похожий на костыли.
Я не говорю что echo - нельзя использовать.

Цитата Сообщение от tlittle Посмотреть сообщение
Забудьте, читайте дальше википедию.
пишите дальше что речь о конкретном теле функции а не о функции...
0
349 / 120 / 1
Регистрация: 08.01.2013
Сообщений: 728
13.10.2013, 00:46
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Потому что в моём примере, там возвращаемое значение.
Вы не можете понять что разговор о строке возвращаемой/выводимой из функции? Ну ок...
Я и говорю. Вы не можете (не хотите) понять, что в одном случае функция выводит значение (echo), а во втором - возвращает строковую переменную. Эти функции просто разные.

При чём тут процедура, разговор о том, что есть Человек, а есть Ваня Иванов рождённый там то... Так вот Функция - это общее название, как человек... вообщем какой то объект.
Еще раз поясните, к чему этот полет фантазии?

Так а я о чём? Я говорю что бы не пришлось заменять, и используют return, тогда хоть что с результатом делайте, хотите выводите, хотите логируйте, хотите игнорируйте...
Итак, у меня есть функция:

PHP
1
2
3
4
5
6
7
function echo_text($text)
{
    mail_to_admin('Отображен текст: '.$text);
    fputs($this->logfile, time()."/r$text");
    // Какие либо другие действия, которые я хотел бы привязать к выводу.
    echo $text;
}
Данная функция специально предназначена для замены и расширения функционала стандартной конструкции echo.

Где такое написано?
Собственно, в исходном посыле данной беседы, где на собеседовании однозначно верным вариантом определили return.

Например я сказал, что return - можно использовать всегда, а echo - не всегда, по этому return, имхо, предпочтительней.
return предпочтительнее там, где предполагается дальнейшая обработка. echo предпочтительнее там, где никакой дальнейшей обработки быть не может - функция специально предусмотрена для вывода. Остальные случаи - по ситуации.

Приведите пример, чем хуже иметь в функции return или return + echo, чем просто echo. Вот потом поговорим прав кто то или нет.
Выше. Ну и в задании на собеседовании - второй вариант неоптимален. В отрыве от остального кода.

Боже, я повторю, что я сказал что return - универсальней.
Что там где есть return - можно делать что угодно, где echo - что угодно, но через доп код похожий на костыли.
Я не говорю что echo - нельзя использовать.
В примере выше return будет дополнительным кодом, похожим на костыли.
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
13.10.2013, 00:58
Цитата Сообщение от tlittle Посмотреть сообщение
Собственно, в исходном посыле данной беседы, где на собеседовании однозначно верным вариантом определили return.
Вопрос, как правильней писать. Там не сказано что так и только так. И я полностью согласен и писал почему.

Цитата Сообщение от tlittle Посмотреть сообщение
Еще раз поясните, к чему этот полет фантазии?
К тому что бы показать что разговор не о конкретном теле функции а о обобщённом понятии функции.

Я не пойму, где сказано что так и только так, я даже выделил слово УНИВЕРСАЛЬНЕЙ, раз выделение не помогло, ещё и капсом напишу. Ну да ладно, я напрмиер не пишу такие обёртки echo, если текст нужно отправить в лог, то я сделаю это либо в модели, либо в контроллере, но не из модели не из контроллера я бы не стал выводить этот же текст через echo, на это есть представления.
У Вас свой подход, писать такие обёртки ваше право, но я же повторюсь, что речь не о запрете, а о универсальности, чаще всего лучше писать с return и я уже писал что случаи с echo - имеют право на жизнь! просто не так универсальны!

Если вы из свой функции вернёте текст или добавите как в Yii переменную говорящую вернуть текст или вывести, от этого код хуже не станет, а универсальности добавиться.
Но Вы можете вообще без функций писать, не кто этого не запретит...
0
 Аватар для __PION__
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
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Вопрос, как правильней писать. Там не сказано что так и только так. И я полностью согласен и писал почему.
Правильнее писать так, как требует того ТЗ и логика работы программы/скрипта. Если с помощью return/echo Вы плодите бесполезный код, то так писать неправильно.

К тому что бы показать что разговор не о конкретном теле функции а о обобщённом понятии функции.
Если Вы говорите об обобщенном понятии функции, то это следует выделять. Я позволю себе повториться, функция из примера явно предназначена для вывода статической заранее заданной текстовой строки. Если мы говорим об обобщенной функции, то это следовало бы записать как минимум так:
PHP
1
2
3
4
5
function f(...)
{
    ...
    echo ($text);
}
Если же в функции выводится статический текст (как в предложенном изначально примере), то правильнее использовать простой вывод без извратов.

Если тот работодатель или Вы не умеете правильно и однозначно ставить задачи, то не стоит и удивляться решениям этих задач, отличных от ваших.

Я не пойму, где сказано что так и только так, я даже выделил слово УНИВЕРСАЛЬНЕЙ, раз выделение не помогло, ещё и капсом напишу.
Запомните раз и навсегда: универсальней не значит правильнее. Например, для забивания гвоздя я возьму молоток. Я, конечно, мог бы взять и топор, им и гвоздь забить можно и дерево порубить. Т.е., он универсальнее. Но правильнее и удобнее забивать гвозди молотком. В подавляющем большинстве случаев специализированные инструменты эффективнее универсальных.

Но Вы можете вообще без функций писать, не кто этого не запретит...
Вот именно об этом я и хотел Вам сказать. Вы можете вообще без функций код писать. И при каждой операции называть переменные новым именем. А вдруг Вам где-то потребуется промежуточный результат?

Добавлено через 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
Цитата Сообщение от tlittle Посмотреть сообщение
Если Вы говорите об обобщенном понятии функции
Цитата Сообщение от tlittle Посмотреть сообщение
функция из примера

Цитата Сообщение от tlittle Посмотреть сообщение
Если тот работодатель или Вы не умеете правильно и однозначно ставить задачи, то не стоит и удивляться решениям этих задач, отличных от ваших.
Если Вы не понимаете, почему с return в любом случае функцию можно использовать а с echo - не всегда удобно, то не стоит пытаться сделать так, что бы этого не мог понять не кто...
Цитата Сообщение от tlittle Посмотреть сообщение
Запомните раз и навсегда: универсальней не значит правильнее. Например, для забивания гвоздя я возьму молоток. Я, конечно, мог бы взять и топор, им и гвоздь забить можно и дерево порубить. Т.е., он универсальнее. Но правильнее и удобнее забивать гвозди молотком. В подавляющем большинстве случаев специализированные инструменты эффективнее универсальных.
Я Вам могу дать топор, молоток и гвоздь, и поверьте, Вам будет забить гвоздь удобней именно топором, чем тем молотком который я Вам дам
Так что не стоит говорить, что если это молоток - то он создан для забивания гвоздей, не любым молотком удобно это делать В конце концов не любой молоток создан именно для гвоздей...

Добавлено через 12 минут
Цитата Сообщение от tlittle Посмотреть сообщение
Вы почитайте то, что начали горячо оспаривать
Так Вы ещё там начали писать именно про строку echo text. Я не разу не писал функций, в которых выводиться или возвращается статик текст...
Цитата Сообщение от tlittle Посмотреть сообщение
подумайте хотя бы над названиями гипотетических функций echo_text и get_text
Я уже сбился со счёта, говоря о том, что функция - не конкретное тело функции, а просто понятие "функция", и что это в большинстве случаев.
Цитата Сообщение от tlittle Посмотреть сообщение
А потом уже говорите о правильности использования return в той и другой.
Я уже высказывал своё мнение, по поводу тела функции echo_text и что я бы вообще не стал писать такую функцию, так как я использую паттерн MVC при написании сайтов, в котором было бы не правильно делать логирование в выводе а вывод в логировании...

Само echo в исходном коде пхп - тоже оформлена как функция, естественно что вообще не избавиться от вывода прям из функции. при выполнении echo, будет вызвана какая то функция на сях, которая должна вывести данные. Просто даже при желании не получится сделать так, так как в конце концов какой то функции придётся выводить данные, пусть это будет даже внутри пхп.
Ещё раз повторюсь, return универсальней, и в большинстве случаев правильней.
0
349 / 120 / 1
Регистрация: 08.01.2013
Сообщений: 728
13.10.2013, 15:04
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Если Вы не понимаете, почему с return в любом случае функцию можно использовать а с echo - не всегда удобно, то не стоит пытаться сделать так, что бы этого не мог понять не кто...
С return тоже не всегда удобно. Двумя постами выше приведен пример, где return не нужен в принципе.

Я Вам могу дать топор, молоток и гвоздь, и поверьте, Вам будет забить гвоздь удобней именно топором, чем тем молотком который я Вам дам
Так что не стоит говорить, что если это молоток - то он создан для забивания гвоздей, не любым молотком удобно это делать В конце концов не любой молоток создан именно для гвоздей...
И это верно. Как я уже говорил, универсальность - далеко не всегда хорошо, лучше пользоваться инструментами предназначенными для конкретной задачи. Маленькие гвозди забивать маленьким молотком. Большие - большим. По коленкам доктор стучит резиновым молоточком... итд.

Так Вы ещё там начали писать именно про строку echo text. Я не разу не писал функций, в которых выводиться или возвращается статик текст...
Однако в примере из собеседования приведена конкретная функция с выводом конкретного статического текста. Ни одного упоминания, что это какая-то обобщенная функция нет.

Я уже сбился со счёта, говоря о том, что функция - не конкретное тело функции, а просто понятие "функция", и что это в большинстве случаев.
Я по прежнему с трудом понимаю Ваш русский язык. Придайте смысл последней части предложения: "и что это в большинстве случаев".

Я уже высказывал своё мнение, по поводу тела функции echo_text и что я бы вообще не стал писать такую функцию, так как я использую паттерн MVC при написании сайтов, в котором было бы не правильно делать логирование в выводе а вывод в логировании...
Это здорово. Однако, если кто-то вдруг решит написать такую функцию, использование в ней конструкции return будет категорически неверным. Более того, мне этом случае непонятно, какие конкретно действия неправильно производить в функции? В стандартный вывод неправильно, это Вы уже сказали. В файл писать можно? А в базу данных? А в чем разница?

Само echo в исходном коде пхп - тоже оформлена как функция, естественно что вообще не избавиться от вывода прям из функции. при выполнении echo, будет вызвана какая то функция на сях, которая должна вывести данные. Просто даже при желании не получится сделать так, так как в конце концов какой то функции придётся выводить данные, пусть это будет даже внутри пхп.
Ещё раз повторюсь, return универсальней, и в большинстве случаев правильней.
Еще раз повторюсь. Когда предназначение функции получить данные - удобнее return. Когда - вывести куда-то данные (в стандартный вывод, в файл, в базу данных) - return не нужен.
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
13.10.2013, 17:24
Цитата Сообщение от tlittle Посмотреть сообщение
С return тоже не всегда удобно.
Я не сказал что всегда удобно... добавить echo - перед именем функции гораздо проще, чем ob_start.... и далее, для получения данных из функции.
Цитата Сообщение от tlittle Посмотреть сообщение
Однако в примере из собеседования приведена конкретная функция с выводом конкретного статического текста
Ну как бы и я и мой знакомый поняли что это обобщённые. Мне например не разу не приходилось писать функцию, из 1 строки, возвращающую статик текст. Да и то, если бы пришлось, может его не нужно выводить.

Цитата Сообщение от tlittle Посмотреть сообщение
Я по прежнему с трудом понимаю Ваш русский язык. Придайте смысл последней части предложения: "и что это в большинстве случаев".
Вы написали в проекту 1к функций. Так вот, более чем в 500 будет return.
Прошу обратить внимание, что речь не о каком то cgi скрипте, в котором в 90х принято было сразу выводить всё, в том числе и без функций вообще
Цитата Сообщение от tlittle Посмотреть сообщение
Более того, мне этом случае непонятно, какие конкретно действия неправильно производить в функции?
Я дважды писал, что речь о МВЦ паттерне.
Цитата Сообщение от tlittle Посмотреть сообщение
Еще раз повторюсь. Когда предназначение функции получить данные - удобнее return. Когда - вывести куда-то данные (в стандартный вывод, в файл, в базу данных) - return не нужен.
Уважаемый, мне уже надоел спор не понятно о чём. Я вам об одном, Вы совершенно о другом.
Я где то сказал что echo - всегда не удобно? Я вообще про удобство не говорю.
Я где то сказал что echo - всегда не правильно?
Я сказал что если вы напишите в своей функции return - проблем не вызовет в любом случае, максимум - это нужно будет написать одно слово echo перед именем. И заметьте, что делает функция? Логирует на почту и в файл текст. Так следовало бы сменить её имя
PHP
1
2
3
4
5
6
7
8
9
10
function log($text)
{
    mail_to_admin('Отображен текст: '.$text);
    fputs($this->logfile, time()."/r$text");
}
...
log($text);
...
echo $text;
...
При чём, часть с log - поместить в контроллер или модель, а часть с echo - в представление.

Это был вопрос при приёме на работу, на существующий проект. Я сказал что я согласен с ответом, у меня в проектах последние лет 5+ все проекты такие, и я бы не хотел видеть echo раскиданные по моделям, что бы потом искать, где же поправить этот чёртов текст... Если на работу нужен будет cgi программист под пхп3, там скорей всего не будет такого вопроса.
0
349 / 120 / 1
Регистрация: 08.01.2013
Сообщений: 728
13.10.2013, 18:21
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Я не сказал что всегда удобно... добавить echo - перед именем функции гораздо проще, чем ob_start.... и далее, для получения данных из функции.
То, что Вы говорите называется демагогия и игра словами. "с return в любом случае функцию можно использовать а с echo - не всегда удобно". Вам понятно, что я имею в виду? Нет? Тогда я поясню. "можно использовать" и "не всегда удобно" - это разные понятия. Можно/нельзя, удобно/неудобно. А Вы пытаетесь их противопоставить. Причем уже не первую страницу. Удачи.
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
13.10.2013, 18:49
Цитата Сообщение от tlittle Посмотреть сообщение
А Вы пытаетесь их противопоставить.
Не понимаю что Вы вообще пытаетесь сравнить. Разговор о двух вариантах работы функции, и удобстве использования функции, если понадобиться её использовать в противоположном назначении.
То есть для return - сделать вывод, а для вывода сделать возврат данных в переменную.
Из это return - то сделать вывод проще по коду и без костылей (удобней).
Чем если это echo - сделать получение сложней по коду (неудобно).

1) Если у Вас функция с return, и Вам вдруг понадобилось текст вывести, вы просто дописываете echo перед именем функции.

2) Если у Вас функция с echo, и Вам вдруг понадобилось не выводить текст а просто получить его в переменную, для дальнейших действий, нужно будет либо переписывать функцию, либо городить огород из ob_start ob_get.

1) В первом случае, при добавлении echo перед именем функции, не вызывает неудобств, по коду в других местах изменений не будет.

2) Во втором случае, нужно менять тело функции, или делать обёртку для неё с получением результата вывода в переменную. имхо - это уже костыль.

Вот я и пишу, что вторая переделка вызовет не удобства. Что тут не понятного, я не знаю
0
 Аватар для fa2m
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
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
13.10.2013, 22:56
[вброс]
Цитата Сообщение от tlittle Посмотреть сообщение
Правильнее писать так, как требует того ТЗ
в чем связь между ТЗ и использованием echo или return ? Ни разу не видел ТЗ, где бы было указано, что, мол, использовать echo внутри функций, а не return. Насколько я понимаю, большинству и по барабану, что там вообще - главное, чтобы работало быстро и хорошо. Как вы там напишите код - всем до лампочки (имеется в виду не "говнокод/не говнокод", а такие мелочи реализации, как использование echo или return, использования UpperCamelCase, lowerCamelCase, с_подчеркиванием или еще как-то по другому). Да, общепринято. Да, считается хорошим тоном. Да, ...... Только заказчику, за исключением редких ситуаций, по-барабану.

Но, раз уж пошла такая пьянка - куда удобнее использовать нечто подобное приведенному здесь уже примеру из фреймворка. Хочешь - выводи. Хочешь - возвращай. Просто измени один флаг при вызове функции.

Вернемся к началу
Цитата Сообщение от tlittle Посмотреть сообщение
А в Вашем примере из собеседования на работе, очевидно, более правилен первый вариант. Еще более правилен вариант "echo 'text'".
Вот скажите, где в том задании указано, что надо вывести текст? А не что надо его обработать каким-либо образом? С чего вы взяли, что верным будет первый вариант, что необходимо его сразу вывести, а не изменить сначала, а? В случае с return вам будет без разницы, что там надо будет - вывести его сразу или же обработать. В случае с echo возможен только вариант с выводом, либо же костыль с помощью ob_start()+ob_get_clean(). Ведь именно об этом уже на протяжении нескольких страниц пытается сказать (вернее, говорит, но вы не хотите его слышать) DrobyshevAlex. Разве уже по этому заданию не видно, что будет лучше? К чему этот нелепый спор на несколько страниц?
[/вброс]
0
 Аватар для __PION__
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
Цитата Сообщение от KOPOJI Посмотреть сообщение
[вброс]

в чем связь между ТЗ и использованием echo или return ? Ни разу не видел ТЗ, где бы было указано, что, мол, использовать echo внутри функций, а не return. Насколько я понимаю, большинству и по барабану, что там вообще - главное, чтобы работало быстро и хорошо. Как вы там напишите код - всем до лампочки (имеется в виду не "говнокод/не говнокод", а такие мелочи реализации, как использование echo или return, использования UpperCamelCase, lowerCamelCase, с_подчеркиванием или еще как-то по другому). Да, общепринято. Да, считается хорошим тоном. Да, ...... Только заказчику, за исключением редких ситуаций, по-барабану.
Именно это я и имел в виду.

Вот скажите, где в том задании указано, что надо вывести текст? А не что надо его обработать каким-либо образом? С чего вы взяли, что верным будет первый вариант, что необходимо его сразу вывести, а не изменить сначала, а? В случае с return вам будет без разницы, что там надо будет - вывести его сразу или же обработать. В случае с echo возможен только вариант с выводом, либо же костыль с помощью ob_start()+ob_get_clean(). Ведь именно об этом уже на протяжении нескольких страниц пытается сказать (вернее, говорит, но вы не хотите его слышать) DrobyshevAlex. Разве уже по этому заданию не видно, что будет лучше? К чему этот нелепый спор на несколько страниц?
[/вброс]
В том задании приведены конкретный куски кода. Которые выводят статический текст. "echo 'text';", если мне не изменяет память. Предположение о том, что этот статический текст надо будет потом где-то обработать - это, во-первых, только предположение. Во-вторых, когда мы будем говорить о последующих обработках этого текста, можно говорить об эффективности первого, второго или какого-то из своих вариантов. Если же я вижу выбор из двух вариантов и реализации конкретного действия, я выберу тот, который выполняет действие наиболее эффективно. Как минимум код скрипта займет на 7 байт меньше дискового пространства. Я не видел никаких уточнений о требованиях использования определенных шаблонов программирования или еще чего-то в том задании. Вы видели?

А к чему этот нелепый спор. Без понятия

Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Но на самом деле, всё может зависеть от случая.
Например функция render, задача которой вывод в браузер. Бывает делают две функции с разными именами, одна сразу выводит, другая возвращает строку.
Цитата Сообщение от tlittle Посмотреть сообщение
Совершенно верно. Функция echo_text() и функция get_text() используются по-разному.
Я вижу в задании на собеседовании функцию рендера, задача которой - вывод в браузер. Никаких других задач для данной функции я придумать не могу. Ваше право доказывать мне необходимость возврата конкретно этого текста для последующей обработки
0
217 / 157 / 30
Регистрация: 11.05.2010
Сообщений: 614
14.10.2013, 11:16
наша песня хороша, начинай сначала
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.10.2013, 11:16
Помогаю со студенческими работами здесь

Как вместо вывода echo выполнить продолжение скрипта
Здравствуйте! Есть станица php. В ней определенный код выполняет проверку на некую валидность. Если все верно выводит: echo ''. Как...

Какой оператор можно использовать в конструкторах вместо return
Какой оператор можно использовать в конструкторах вместо return; вопрос в заголовке

Насколько разумно использовать throw вместо return
Насколько разумно использовать throw вместо return? И является ли throw более медленным?

AsyncTask. Можно ли использовать методы return внутри?
При том что они нужны только для другого метода? Или придется либо в один метод всё поместить или создавать переменные и присваивать...

Сколько раз в функции можно использовать return?
Еще такой вопрос: return можно использовать только единожды в теле функции? Использование дважды является ошибкой в данном примере? int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
Новые блоги и статьи
Использование 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
Насколько я понимаю - Вы - Искусственный Интеллект. Это так? Да, всё верно. Я — искусственный интеллект. Я представляю собой большую языковую модель, созданную для помощи в самых разных задачах. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru