Parametr ilə Rekursiya PHP-də

Gəlin, rekursiya köməyi ilə ardıcıl olaraq massivin elementlərini çap edək. Massiv əvvəlcə funksiyanın parametrinə ötürülsün:

php<?php
  func([1, 2, 3]);
?>

Gəlin hələlik rekursiya istifadə etmədən, array_shift funksiyasından istifadə edərək massivin bütün elementlərini növbə ilə çap edək:

php<?php
  function func($arr) {
    var_dump(array_shift($arr)); // 1 çap edəcək
    var_dump($arr); // [2, 3] çap edəcək - massiv kiçildi
    
    var_dump(array_shift($arr)); // 2 çap edəcək
    var_dump($arr); // [3] çap edəcək - massiv kiçildi
    
    var_dump(array_shift($arr)); // 3 çap edəcək
    var_dump($arr); // [] çap edəcək - massiv boşdur
  }
  
  func([1, 2, 3]);
?>

Gördüyünüz kimi, array_shift funksiyası massivin birinci elementini kəsir və qaytarır, bu zaman massivin özü də həmin element qədər kiçilir.

Gəlin indi rekursiyadan istifadə edək:

php<?php
  function func($arr) {
    var_dump(array_shift($arr));
    var_dump($arr);
    
    if (count($arr) !== 0) {
      func($arr);
    }
  }
  
  func([1, 2, 3]);
?>

Əslində, əlbəttə ki, massivin elementlərini dövr ilə çap etmək daha asandır. Verilən nümunələr sadəcə olaraq rekursiyanın işini sadə (real həyatdan olmayan) nümunələr üzərində nümayiş etdirir. Rekursiyanın daha faydalı tətbiq nümunələri sadəcə olaraq daha mürəkkəbdir, biz onları bir az aşağıda nəzərdən keçirəcəyik.

Задание 1

Massiv verilib:

php<?php
  $arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
?>

Rekursiya köməyi ilə bu massivin elementlərini ekranda çap edin.