Úskalí return v PHP

Poté, co se provede instrukce return - funkce ukončí svůj běh. To znamená: po provedení return se již žádný další kód neprovede.

Podívejte se na příklad:

php<?php
  function func($num) {
    return $num * $num;
    
    echo '!'; // tento kód se nikdy neprovede
  }
  
  $res = func(3);
?>

To neznamená, že funkce musí mít jeden return. Ale provede se pouze jeden z nich.

V dalším příkladu v závislosti na hodnotě parametru se provede buď první, nebo druhý return:

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

Co se vypíše na obrazovku v důsledku provedení následujícího kódu:

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

Vysvětlete proč.

Задание 2

Co vypíše každý z echo v důsledku provedení následujícího kódu:

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

Vysvětlete proč.

Задание 3

Co vypíše každý z echo v důsledku provedení následujícího kódu:

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

Vysvětlete proč.