การเรียกซ้ำด้วยพารามิเตอร์ใน PHP

มาเริ่มต้นด้วยการใช้การเรียกซ้ำเพื่อแสดงองค์ประกอบของอาร์เรย์ตามลำดับกัน ให้อาร์เรย์ถูกส่งผ่านพารามิเตอร์ไปยังฟังก์ชันตั้งแต่เริ่มต้น:

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

ตอนนี้เรามาลองแสดงองค์ประกอบทั้งหมดของอาร์เรย์ทีละตัวโดยไม่ใช้การเรียกซ้ำ แต่ใช้ฟังก์ชัน array_shift :

php<?php
  function func($arr) {
    var_dump(array_shift($arr)); // จะแสดง 1
    var_dump($arr); // จะแสดง [2, 3] - อาร์เรย์ลดขนาดลง
    
    var_dump(array_shift($arr)); // จะแสดง 2
    var_dump($arr); // จะแสดง [3] - อาร์เรย์ลดขนาดลง
    
    var_dump(array_shift($arr)); // จะแสดง 3
    var_dump($arr); // จะแสดง [] - อาร์เรย์ว่างเปล่า
  }
  
  func([1, 2, 3]);
?>

อย่างที่คุณเห็น ฟังก์ชัน array_shift จะดึงและส่งคืนองค์ประกอบแรกของอาร์เรย์ ในขณะที่อาร์เรย์เองจะลดลงตามองค์ประกอบนั้น

ตอนนี้ลองใช้การเรียกซ้ำกัน:

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

แน่นอนว่าในความเป็นจริง การวนซ้ำองค์ประกอบอาร์เรย์ด้วยลูปนั้นง่ายกว่า ตัวอย่างที่นำเสนอนี้เป็นเพียงการสาธิตการทำงานของการเรียกซ้ำด้วยตัวอย่างง่ายๆ (ไม่ใช่จากสถานการณ์จริง) ตัวอย่างการใช้งานการเรียกซ้ำที่มีประโยชน์มากกว่านั้นซับซ้อนกว่า ซึ่งเราจะวิเคราะห์ต่อไปด้านล่าง

Задание 1

กำหนดอาร์เรย์:

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

ใช้การเรียกซ้ำเพื่อแสดงองค์ประกอบของอาร์เรย์นี้บนหน้าจอ