10 บทความล่าสุด เลือกหมวด
10 ข่าวไอทีล่าสุด
10 วิดีโอคลิปล่าสุด
หมวดหมู่บทความ
หมวดหมู่วิดีโอคลิป
บอทล่าสุดวันนี้
หน้าแรก >>บทความ >> PHP >> PHP การเขียนฟังก์ชั่นที่เรียกใช้ตัวเอง (Recursive Function)
PHP การเขียนฟังก์ชั่นที่เรียกใช้ตัวเอง (Recursive Function)
วันศุกร์ที่ 13 เดือน มกราคม พ.ศ.2555 00:00 น.
        การเขียนฟังก์ชั่นที่เรียกใช้ตัวเอง (Recursive Function)  ฟังก์ชั่นเรียกตัวเอง ใช้สำหรับทำงานซ้ำๆ กันโดยที่เราไม่รู้จำนวนรอบในการทำงาน โดยจะมีจุดสิ้นสุดการทำงานอยู่ในฟังก์ชั่นเองอยู่แล้ว เพื่อให้ฟังก์ชั่นหยุดการทำงาน การเขียนฟังก์ชั่นแบบเรียกตัวเอง จะลดระยะเวลาในการเขียนโปรแกรมไปได้อย่างมาก แต่ปัญหาคือการออกแบบและเขียนได้ยากมาก ทำให้ไม่ค่อยได้เห็นคนเขียนฟังก์ชั่นแบบนี้กันเท่าไหร่
          
        มีองค์ประกอบดังต่อไปนี้
             1. มีการเรียกใช้ฟังก์ชันที่มีชื่อเป็นชื่อฟังก์ชันของตนเอง ภายในซึ่งอาจจะอยู่ในส่วนคำสั่งหรือเป็นองค์ประกอบในนิพจน์
             2. มีการรับค่าเข้าทางพารามิเตอร์ของฟังก์ชัน  โดยค่าดังกล่าวจะถูกนำไปใช้ภายในฟังก์ชันเอง ซึ่งผลของการคำนวณบางส่วนจะถูกนำไปใช้เวลาที่มีการเรียกใช้”ชื่อ”ฟังก์ชันตนเองภายในตัวฟังก์ชัน
             3. มีการส่งผลการคำนวณกลับ   ซึ่งผลดังกล่าวจะนำไปใช้ในการคำนวณในฟังก์ชันเรียกตนเองหรืออาจจะส่งกลับให้กับโปรแกรม
             4. มีจุดสิ้นสุดของการเรียกตนเอง   ฟังก์ชันเรียกตนเองจะทำงานไม่ได้หากไม่มีช่องทางให้โปรแกรมหยุดการเรียกตนเองในขั้นใดขั้นหนึ่ง เพราะจะเกิดการเรียกตนเองแบบไม่มีสิ้นสุด

        ตัวอย่าง สมุติว่าต้องการผลรวม 1+2+3+4+...20 

            <?php
                function totalnum($n)
                {
                        if ( $n ==1 ) {
                         return true;
                        }
                        $total=totalnum($n-1)+$n;
                return $total;          
               }

                echo totalnum(20); 
            ?>


        ผลลัพธ์ที่ได้

            210

บทความที่เกี่ยวข้อง

View All
สอน XML        สอน MYSQL        สอน CSS        สอน HTML        สอน PHP        Sitemap        แลกลิ้งกับเรา         
Back to top
2011-2018 All Rights Reserved by  korakitinfo.com  E-Mail : korakit.wiw@korakitinfo.com
Page rendered in 0.0317 seconds
  www.korakitinfo.com