Return vs echo/print

В конструкціях php та інших мов програмування часто використовується функція return — повернення результату. Її часто плутають з виводом результату на екран, тому є сенс прояснити логіку обох функцій на невеликому прикладі.

function HelloUser(){
echo "hello world";
}

HelloUser();

Конструкція без проблем виведе на екран привітання “hello world”. Проте, коли ми спробуємо присвоїти цей результат якійсь змінній, аби маніпулювати ним в подальшому, то слідкуйте за руками:

  • в місці створення зміної $helloVariables ми активовуємо функцію;
  • в результаті в місці створення в нас виведеться текст привітання;
  • проте сама змінна залишиться пустою. Це або видасть помилку (залежно від налаштувань), або видасть пустий результат, коли ми захочемо застосувати змінну в майбутньому…
function HelloUser(){
echo "hello world";
}

$helloVariables = HelloUser();
// видась "hello world"
echo '<br>';
echo 'Змінна привітання:  ' . $helloVariables;
// видасть 'Змінна привітання: '

Аби уникнути цього безладу, древні програмісти домовились про просте та водночас елегантне рішення:

function HelloUser(){
return "hello world";
}
$helloVariables = HelloUser(); 
// передасть значення як контрабанду через кордон 

echo '<br>'; 
echo 'Змінна привітання: ' . $helloVariables . "!";
// заверне: "Змінна привітання: hello world!"

Чому я вирішив зупинитись на цій проблемі: більшість з функцій, які ми будемо розглядати в майбутньому, використовуватимуть подібну логіку і можуть працювати як в режимі виводу, так і видачі результатів. Тому розуміння цього принципу хоч і просте, але важливе для нас в майбутньому.

Залишити відповідь