Točko občutljivo za return v PHP

Ko se ukaz return izvede, se funkcija zaključi. To pomeni: po izvedbi return se nobena druga koda ne bo izvedla.

Poglejte primer:

php<?php
  function func($num) {
    return $num * $num;
    
    echo '!'; // ta koda se ne bo nikoli izvedla
  }
  
  $res = func(3);
?>

To ne pomeni, da mora biti v funkciji samo en return. Toda izvedel se bo le eden od njih.

V naslednjem primeru se bo, odvisno od vrednosti parametra, izvedel bodisi prvi bodisi drugi return:

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

Kaj se bo izpisalo na zaslon kot rezultat izvajanja naslednje kode:

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

Pojasnite zakaj.

Задание 2

Kaj bo izpisal vsak izmed echo kot rezultat izvajanja naslednje kode:

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

Pojasnite zakaj.

Задание 3

Kaj bo izpisal vsak izmed echo kot rezultat izvajanja naslednje kode:

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

Pojasnite zakaj.