Basic PHP Programming


การควบคุมโปรแกรมใน PHP
                        โดย
                อ.เรวดี พิพฒน์สูงเนิน
                           ั
  สาขาวิชาวิทยาการคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
     คณะวิทยาศาสตร์ มหาวิทยาลัยราชภัฏอุดรธานี
การควบคุมโปรแกรมในภาษา PHP
มี 2 รูปแบบ ได้แก่
• การตัดสินใจเลือกทา (Decision)
   – คาสั่ง if , else , elseif
   – คาสั่ง switch
   – ตัวดาเนินการ ?: (Conditional operator)
• การทาซ้า (Repetition)
   – คาสั่ง for
   – คาสั่ง while
   – คาสั่ง do … while
   – คาสั่ง foreach
คาสั่ง if
                                      รูปแบบคาสั่ง
                จริง                    if (เงื่อนไข)
 เงื่อนไข
                                             ประโยคงานเมือเงื่อนไขเป็นจริง ;
                                                         ่
      เท็จ             ประโยคงาน


                            เช่น
งานลาดับถัดไป
คาสั่ง if
  เงือนไข
     ่          จริง               รูปแบบคาสั่ง
                                         if (เงื่อนไข) {
      เท็จ        ประโยคงาน 1                 ประโยคงาน1 ;
                                              ประโยคงาน2 ;
                 ประโยคงาน 2              }

                                เช่น

งานลาดับถัดไป
คาสั่ง if
• นิพจน์เงื่อนไขไม่จาเป็นต้องเป็นนิพจน์ชนิด Boolean แต่อาจจะเป็นชนิด
  ใดก็ได้ ซึ่ง PHP จะตรวจสอบเองว่าเงื่อนไขเป็น true หรือ false
• ค่าต่าง ๆ ต่อไปนี้ PHP จะแปลงเป็นชนิด Boolean ที่มีค่าเป็น False
   –   ค่าจานวนเต็ม 0
   –   ค่าทศนิยม 0.0
   –   สตริงว่าง (“”) และสตริง “0”
   –   อาร์เรย์ทไม่มีสมาชิก
                ี่
   –   ออบเจ็คที่ไม่มีตัวแปรสมาชิก
   –   ค่า NULL (ค่าว่าง) หรือตัวแปรทียงไม่มีการกาหนดค่า
                                      ่ั
• ส่วนค่าอื่น ๆ จะถูกแปลงเป็น true
คาสั่ง if…else
      เท็จ                   จริง         รูปแบบคาสั่ง
                เงื่อนไข
                                           if (เงือนไข)
                                                  ่
ประโยคงาน2                   ประโยคงาน1             ประโยคงาน1 ;
                                             else
                                                    ประโยคงาน2 ;
             งานลาดับถัดไป
คาสั่ง if … elseif
• เป็นการตัดสินใจแบบหลายเงื่อนไข              เท็จ          เงื่อนไข 1
                                                                         จริง

                               เท็จ   เงื่อนไข 2     จริง                งานจริง 1

                          งานเท็จ                     งานจริง 2


• รูปแบบ
                                                            งานถัดไป
  if (เงื่อนไข1) ทางานจริง 1
  elseif (เงือนไข2) ทางานจริง 2
              ่
  else ทางานเท็จ
  ทางานถัดไป
คาสั่ง if … elseif
คาสั่ง switch…case
  • ใช้ในกรณีทมทางเลือกหลายกรณี
              ี่ ี
  • โดยจาใช้การตรวจสอบเงือนไขร่วมกันเพียงครังเดียว ผลการตรวจสอบเงือนไขจะ
                           ่                ้                     ่
  ถูกนาไปพิจาณาเพือเลือกว่าจาทางานตามทางเลือกใด
                   ่
                                                         switch (นิพจน์)
                                                         {
                          นิพจน์                           case ค่าที1 : ประโยคงาน 1;
                                                                     ่
  ค่าที่ 1     ค่าที่ 2            ค่าที่ 3     ค่าอื่นๆ                   break ;
                                                           case ค่าที2 : ประโยคงาน 2;
                                                                       ่
ประโยคงาน1   ประโยคงาน2       ประโยคงาน3      ประโยคงาน4
                                                                           break ;
                                                           case ค่าที3 : ประโยคงาน 3;
                                                                         ่
                                                                           break ;
                                                           default : ประโยคงาน 4;
                                                         }
คาสั่ง switch…case
ตัวดาเนินการ ?:
• ?: มีชื่อว่า Conditional Operator คือตัวดาเนินการทีใช้ตรวจสอบ
                                                      ่
  เงื่อนไขหนึง ๆ แล้วตัดสินใจว่าจะให้ผลลัพธ์เป็นค่าใด
               ่
• รูปแบบ

                  expr1 ? expr2 : expr3

• expr1 เป็นนิพจน์เงื่อนไข
• expr2 เป็นนิพจน์ทให้ทาเมื่อเงื่อนไข expr1 เป็นจริง
                    ี่
• expr3 เป็นนิพจน์ทให้ทาเมื่อเงื่อนไข expr1 เป็นเท็จ
                       ี่
ตัวดาเนินการ ?:



ผลลัพธ์ : กรณีค่าในตัวแปร $login_status = true


ผลลัพธ์ : กรณีค่าในตัวแปร $login_status = false
คาสั่ง while
• คาสั่ง while เป็นคาสั่งทางานซ้า โดยจะ
  ตรวจสอบเงื่อนไขก่อน                              เงือนไข
                                                      ่         False
• ถ้าเงื่อนไขที่ตรวจสอบให้ผลเป็นจริง จะให้              True
  ไปทางานในคาสั่งหรือกลุ่มคาสังทาซ้า 1
                               ่               คาสั่งงานซ้า 1
  รอบ แล้วกลับมาตรวจสอบเงื่อนไขอีกครั้ง
• ถ้าเงื่อนไขที่ตรวจสอบให้ผลเป็นเท็จ ไม่ต้อง   คาสั่งงานซ้า 2
  เข้าทางานใน loop

while (เงือนไขทีตรวจสอบ)
           ่     ่
{ คาสังทีให้ทางานซ้า }
      ่ ่
คาสั่ง while
คาสั่ง while
คาสั่ง do..while
• คาสั่ง do…while เป็นคาสั่งทางานซ้า โดยจะ
  ให้ทางานในคาสั่งหรือกลุ่มคาสังทาซ้าก่อน 1
                               ่                               คาสั่งงานซ้า 1
  รอบ แล้วจึงค่อยตรวจสอบเงื่อนไขว่าจะให้
  ทางานซ้าอีกหรือไม่                                          คาสั่งงานซ้า 2
• ถ้าเงื่อนไขที่ตรวจสอบให้ผลเป็นจริง จะให้ไป
                                                       True       เงือนไข
                                                                     ่
  ทางานในคาสั่งหรือกลุ่มคาสั่งทาซ้า 1 รอบ
  แล้วกลับมาตรวจสอบเงื่อนไขอีกครั้ง                                    False
• ถ้าเงื่อนไขที่ตรวจสอบให้ผลเป็นเท็จ จะจบ
  คาสั่ง do…while ทันที          do {
                                       คาสังทีให้ทางานซ้า
                                           ่ ่
                                } while (เงือนไขทีตรวจสอบ) ;
                                            ่     ่
คาสั่ง do..while
คาสั่ง for
                                                                        กาหนดรอบการทางาน
 • คาสั่ง for เหมาะสาหรับกรณีที่รู้จานวนรอบ
   การทางานวนซ้าที่แน่นอน
                                                                        คาสั่งทาซ้า 1
 • โดยกาหนดจุดเริ่มต้น เงื่อนไขการตรวจสอบ
   และการเพิ่ม/ลดรอบการทางานไว้ที่คาสั่ง for                            คาสั่งทาซ้า 2

                                                                             Next




for(นิพจน์กาหนดรอบเริมต้น ; นิพจน์ตรวจสอบ ;
                     ่                        นิพจน์เพิม/ลดตัวนับรอบ)
                                                       ่
{       คาสังทีให้ทางานซ้า }
            ่ ่
คาสั่ง for

02 controlflow php

  • 1.
    Basic PHP Programming การควบคุมโปรแกรมในPHP โดย อ.เรวดี พิพฒน์สูงเนิน ั สาขาวิชาวิทยาการคอมพิวเตอร์และเทคโนโลยีสารสนเทศ คณะวิทยาศาสตร์ มหาวิทยาลัยราชภัฏอุดรธานี
  • 2.
    การควบคุมโปรแกรมในภาษา PHP มี 2รูปแบบ ได้แก่ • การตัดสินใจเลือกทา (Decision) – คาสั่ง if , else , elseif – คาสั่ง switch – ตัวดาเนินการ ?: (Conditional operator) • การทาซ้า (Repetition) – คาสั่ง for – คาสั่ง while – คาสั่ง do … while – คาสั่ง foreach
  • 3.
    คาสั่ง if รูปแบบคาสั่ง จริง if (เงื่อนไข) เงื่อนไข ประโยคงานเมือเงื่อนไขเป็นจริง ; ่ เท็จ ประโยคงาน เช่น งานลาดับถัดไป
  • 4.
    คาสั่ง if เงือนไข ่ จริง รูปแบบคาสั่ง if (เงื่อนไข) { เท็จ ประโยคงาน 1 ประโยคงาน1 ; ประโยคงาน2 ; ประโยคงาน 2 } เช่น งานลาดับถัดไป
  • 5.
    คาสั่ง if • นิพจน์เงื่อนไขไม่จาเป็นต้องเป็นนิพจน์ชนิดBoolean แต่อาจจะเป็นชนิด ใดก็ได้ ซึ่ง PHP จะตรวจสอบเองว่าเงื่อนไขเป็น true หรือ false • ค่าต่าง ๆ ต่อไปนี้ PHP จะแปลงเป็นชนิด Boolean ที่มีค่าเป็น False – ค่าจานวนเต็ม 0 – ค่าทศนิยม 0.0 – สตริงว่าง (“”) และสตริง “0” – อาร์เรย์ทไม่มีสมาชิก ี่ – ออบเจ็คที่ไม่มีตัวแปรสมาชิก – ค่า NULL (ค่าว่าง) หรือตัวแปรทียงไม่มีการกาหนดค่า ่ั • ส่วนค่าอื่น ๆ จะถูกแปลงเป็น true
  • 6.
    คาสั่ง if…else เท็จ จริง รูปแบบคาสั่ง เงื่อนไข if (เงือนไข) ่ ประโยคงาน2 ประโยคงาน1 ประโยคงาน1 ; else ประโยคงาน2 ; งานลาดับถัดไป
  • 7.
    คาสั่ง if …elseif • เป็นการตัดสินใจแบบหลายเงื่อนไข เท็จ เงื่อนไข 1 จริง เท็จ เงื่อนไข 2 จริง งานจริง 1 งานเท็จ งานจริง 2 • รูปแบบ งานถัดไป if (เงื่อนไข1) ทางานจริง 1 elseif (เงือนไข2) ทางานจริง 2 ่ else ทางานเท็จ ทางานถัดไป
  • 8.
  • 9.
    คาสั่ง switch…case • ใช้ในกรณีทมทางเลือกหลายกรณี ี่ ี • โดยจาใช้การตรวจสอบเงือนไขร่วมกันเพียงครังเดียว ผลการตรวจสอบเงือนไขจะ ่ ้ ่ ถูกนาไปพิจาณาเพือเลือกว่าจาทางานตามทางเลือกใด ่ switch (นิพจน์) { นิพจน์ case ค่าที1 : ประโยคงาน 1; ่ ค่าที่ 1 ค่าที่ 2 ค่าที่ 3 ค่าอื่นๆ break ; case ค่าที2 : ประโยคงาน 2; ่ ประโยคงาน1 ประโยคงาน2 ประโยคงาน3 ประโยคงาน4 break ; case ค่าที3 : ประโยคงาน 3; ่ break ; default : ประโยคงาน 4; }
  • 10.
  • 11.
    ตัวดาเนินการ ?: • ?:มีชื่อว่า Conditional Operator คือตัวดาเนินการทีใช้ตรวจสอบ ่ เงื่อนไขหนึง ๆ แล้วตัดสินใจว่าจะให้ผลลัพธ์เป็นค่าใด ่ • รูปแบบ expr1 ? expr2 : expr3 • expr1 เป็นนิพจน์เงื่อนไข • expr2 เป็นนิพจน์ทให้ทาเมื่อเงื่อนไข expr1 เป็นจริง ี่ • expr3 เป็นนิพจน์ทให้ทาเมื่อเงื่อนไข expr1 เป็นเท็จ ี่
  • 12.
    ตัวดาเนินการ ?: ผลลัพธ์ :กรณีค่าในตัวแปร $login_status = true ผลลัพธ์ : กรณีค่าในตัวแปร $login_status = false
  • 13.
    คาสั่ง while • คาสั่งwhile เป็นคาสั่งทางานซ้า โดยจะ ตรวจสอบเงื่อนไขก่อน เงือนไข ่ False • ถ้าเงื่อนไขที่ตรวจสอบให้ผลเป็นจริง จะให้ True ไปทางานในคาสั่งหรือกลุ่มคาสังทาซ้า 1 ่ คาสั่งงานซ้า 1 รอบ แล้วกลับมาตรวจสอบเงื่อนไขอีกครั้ง • ถ้าเงื่อนไขที่ตรวจสอบให้ผลเป็นเท็จ ไม่ต้อง คาสั่งงานซ้า 2 เข้าทางานใน loop while (เงือนไขทีตรวจสอบ) ่ ่ { คาสังทีให้ทางานซ้า } ่ ่
  • 14.
  • 15.
  • 16.
    คาสั่ง do..while • คาสั่งdo…while เป็นคาสั่งทางานซ้า โดยจะ ให้ทางานในคาสั่งหรือกลุ่มคาสังทาซ้าก่อน 1 ่ คาสั่งงานซ้า 1 รอบ แล้วจึงค่อยตรวจสอบเงื่อนไขว่าจะให้ ทางานซ้าอีกหรือไม่ คาสั่งงานซ้า 2 • ถ้าเงื่อนไขที่ตรวจสอบให้ผลเป็นจริง จะให้ไป True เงือนไข ่ ทางานในคาสั่งหรือกลุ่มคาสั่งทาซ้า 1 รอบ แล้วกลับมาตรวจสอบเงื่อนไขอีกครั้ง False • ถ้าเงื่อนไขที่ตรวจสอบให้ผลเป็นเท็จ จะจบ คาสั่ง do…while ทันที do { คาสังทีให้ทางานซ้า ่ ่ } while (เงือนไขทีตรวจสอบ) ; ่ ่
  • 17.
  • 18.
    คาสั่ง for กาหนดรอบการทางาน • คาสั่ง for เหมาะสาหรับกรณีที่รู้จานวนรอบ การทางานวนซ้าที่แน่นอน คาสั่งทาซ้า 1 • โดยกาหนดจุดเริ่มต้น เงื่อนไขการตรวจสอบ และการเพิ่ม/ลดรอบการทางานไว้ที่คาสั่ง for คาสั่งทาซ้า 2 Next for(นิพจน์กาหนดรอบเริมต้น ; นิพจน์ตรวจสอบ ; ่ นิพจน์เพิม/ลดตัวนับรอบ) ่ { คาสังทีให้ทางานซ้า } ่ ่
  • 19.