Return subtilybės PHP kalboje

Po to, kai įvykdoma return instrukcija - funkcija baigia savo darbą. Tai reiškia: po return vykdymo joks tolesnis kodas nebevykdomas.

Žiūrėkite pavyzdį:

php<?php
  function func($num) {
    return $num * $num;
    
    echo '!'; // šis kodas niekada nebus vykdomas
  }
  
  $res = func(3);
?>

Tai nereiškia, kad funkcijoje turi būti vienas return. Bet vykdysis tik vienas iš jų.

Šiame pavyzdyje, priklausomai nuo parametro reikšmės, vyks arba pirmasis, arba antrasis return:

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

Kas bus atvaizduota ekrane vykdzius šį kodą:

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

Paaiškinkite kodėl.

Задание 2

Ką išves kiekvienas echo vykdzius šį kodą:

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

Paaiškinkite kodėl.

Задание 3

Ką išves kiekvienas echo vykdzius šį kodą:

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

Paaiškinkite kodėl.