Возвращаемое значение эхо-функции PHP vs echo внутри функции

Как правило, я напишу такую ​​функцию:

function alertClass($field,$full=false){ global $formErrors; $html = $full ? ' class="alert"' : ' alert'; if (!empty($formErrors[$field])) return $html; } 

а затем, где я хочу, чтобы html показывал, я буду возвращать возвращаемое значение функции следующим образом:

 echo alertClass('somefield') 

но сегодня я думал, почему бы просто не поместить эхо в функцию вместо использования возвращаемого значения? Поэтому вместо «return $ html» это будет «echo $ html» … Есть ли преимущество в том или ином?

Solutions Collecting From Web of "Возвращаемое значение эхо-функции PHP vs echo внутри функции"

например, когда вы эхо текста из своей функции, как это …

 function yourStatus(){ echo ' Done'; } echo 'Status ='. yourStatus(); 

ваш результат будет выглядеть следующим образом:

 "DoneStatus =" 

вместо

 "Status = Done" 

ура

Использование echo preculdes с использованием функции для программной сборки некоторого HTML для вывода позже или для дальнейшей обработки.

Если в вашем случае нет недостатка в возвращении HTML, я продолжу это делать. Это добавляет гибкость.

Это зависит от цели функции.

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

Однако, если целью функции является специально для вывода текста (например, методы класса, ответственного за создание и вывод страницы, в соответствии с шаблоном), тогда это будет хорошо.

И недавно я вижу такой код:

 function check_something($var) { if( $var ) { echo "true"; return true; } else { echo "false"; return false; } } 

Почему они это делают ? Повторить что-то и вернуть true / false после этого? Разве это не плохая практика / плохой стиль кодирования?

Если вы больше не используете возвращаемое значение в любом месте, лучше использовать echo .