PHP-ի return-ի նուanced կողմը

Երբ կատարվում է return հրահանգը, ֆունկցիան ավարտում է իր աշխատանքը: Այսինքն՝ return-ի կատարումից հետո այլևս ոչ մի կոդ չի կատարվի:

Նայեք օրինակին.

php<?php
  function func($num) {
    return $num * $num;
    
    echo '!'; // այս կոդը երբեք չի կատարվի
  }
  
  $res = func(3);
?>

Սա չի նշանակում, որ ֆունկցիայում պետք է լինի մեկ return: Բայց կկատարվի դրանցից միայն մեկը:

Հաջորդ օրինակում, կախված պարամետրի արժեքից, կկատարվի կամ առաջին, կամ երկրորդ return-ը.

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

Ի՞նչ կարտածվի էկրանին հետևյալ կոդի կատարման արդյունքում.

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

Բացատրեք, թե ինչու:

Задание 2

Ի՞նչ կարտածի echo-ներից յուրաքանչյուրը հետևյալ կոդի կատարման արդյունքում.

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

Բացատրեք, թե ինչու:

Задание 3

Ի՞նչ կարտածի echo-ներից յուրաքանչյուրը հետևյալ կոդի կատարման արդյունքում.

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

Բացատրեք, թե ինչու: