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