Den knepiga return-satsen i PHP

Efter att en <return-sats har körts - avslutas funktionen. Det betyder: efter att en return har körts kommer ingen mer kod att köras.

Se exempel:

php<?php
  function func($num) {
    return $num * $num;
    
    echo '!'; // den här koden kommer aldrig att köras
  }
  
  $res = func(3);
?>

Det betyder inte att en funktion måste ha en enda <return. Men bara en av dem kommer att köras.

I nästa exempel kommer, beroende på parameterns värde, antingen den första eller den andra <return att köras:

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

Vad kommer att skrivas ut på skärmen som ett resultat av följande kod:

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

Förklara varför.

Задание 2

Vad kommer varje <echo att skriva ut som ett resultat av följande kod:

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

Förklara varför.

Задание 3

Vad kommer varje <echo att skriva ut som ett resultat av följande kod:

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

Förklara varför.