Рекурсияро дар PHP кор кардан

Дар барномасозӣ чунин мафҳуме вуҷуд дорад, ки рекурсия - ин вақтест, ки функсия худро даъват мекунад. Биёед мислан назар кунем. Бо ёрии рекурсия рақамҳоро аз 1 то 10 чоп кунем:

php<?php
  $i = 1;
  
  function func()
  {
    global $i;
    
    echo $i;
    $i++;
    
    if ($i <= 10){
      func(); // дар инҷо функсия худро даъват мекунад
    }
  }
  func();
?>

Биёед баҳс кунем, ки ин код чӣ гуна кор мекунад.

Мо тағйирёбандаи глобалӣ $i ва функсияи func дорем, ки дар дохили он ба консоль мазмуни тағйирёбандаи $i чоп мешавад, ва сипас ++ иҷро мешавад.

Агар тағйирёбандаи мо $i хурдтар аз ё ба 10 баробар бошад, он гоҳ функсия бори дигар даъват мешавад. Зеро тағйирёбандаи $i - глобалӣ аст, ҳар дафъае, ки функсияи нав даъват шавад, дар он қимати таъиншудаи тағйирёбандаи $i аз даъвати қаблӣ вуҷуд хоҳад дошт.

Ин бурда мебарояд, ки функсия худро то он даме даъват мекунад, ки $i аз 10 зиёд нашавад.

Дар назар доред, ки дар ҳолати мо функсияро бе if оғоз кардан мумкин нест - агар ин кор анҷом дода шавад, он гоҳ даъвати беохири функсияҳо ҳосил мешавад.