return-komennon hienovarainen käyttö PHP:ssä

Sen jälkeen, kun return-komento suoritetaan - funktio päättää toimintansa. Toisin sanoen: return-komennon suorittamisen jälkeen mitään koodia ei enää suoriteta.

Katso esimerkki:

php<?php
  function func($num) {
    return $num * $num;
    
    echo '!'; // tätä koodia ei koskaan suoriteta
  }
  
  $res = func(3);
?>

Tämä ei tarkoita, että funktiossa täytyy olla vain yksi return. Mutta vain yksi niistä suoritetaan.

Seuraavassa esimerkissä parametrin arvosta riippuen suoritetaan joko ensimmäinen tai toinen return:

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

Mitä seuraava koodi tulostaa näytölle suorituksen jälkeen:

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

Selitä miksi.

Задание 2

Mitä kukin echo tulostaa seuraavan koodin suorituksen jälkeen:

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

Selitä miksi.

Задание 3

Mitä kukin echo tulostaa seuraavan koodin suorituksen jälkeen:

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

Selitä miksi.