Тънко място на return в PHP

След като се изпълни инструкцията return - функцията ще прекрати работата си. Това означава: след изпълнение на return вече няма да се изпълни никакъв код.

Вижте пример:

php<?php
  function func($num) {
    return $num * $num;
    
    echo '!'; // този код никога няма да се изпълни
  }
  
  $res = func(3);
?>

Това не означава, че във функцията трябва да има само един return. Но ще се изпълни само един от тях.

В следващия пример в зависимост от стойността на параметъра ще се изпълни или първият, или вторият return:

php<?php
  function func($num) {
    if ($num >= 0) {
      return '+';
    } else {
      return '-';
    }
  }
  
  echo func( 3); // ще изведе '+'
  echo func(-3); // ще изведе '-'
?>
Задание 1

Какво ще се изведе на екрана в резултат на изпълнението на следния код:

php<?php
  function func($num) {
    return $num;
    
    $res = $num * $num;
    return $res;
  }
  
  echo func(3);
?>

Обяснете защо.

Задание 2

Какво ще изведе всеки от echo в резултат на изпълнението на следния код:

php<?php
  function func($num) {
    if ($num <= 0) {
      return abs($num);
    } else {
      return $num * $num;
    }
  }
  
  echo func(10);
  echo func(-5);
?>

Обяснете защо.

Задание 3

Какво ще изведе всеки от echo в резултат на изпълнението на следния код:

php<?php
  function func($num) {
    if ($num <= 0) {
      return abs($num);
    }
    
    return $num * $num;
  }
  
  echo func(10);
  echo func(-5);
?>

Обяснете защо.