คำสั่งตรวจสอบเงื่อนไข

คำสั่งเลือกเงื่อนไข

ในบทนี้ นักเรียนจะได้เรียนรู้เกี่ยวกับคำสั่งเลือกเงือนไข If If Else และ Switch เพื่อควบคุมการทำงานของโปรแกรมในภาษา PHP

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

เราจะมาเริ่มกับคำสั่งที่พื้นฐานที่สุดสำหรับคำสั่งเลือกเงื่อนไข คำสั่ง If


คำสั่ง If

คำสั่ง If เป็นคำสั่งควบคุมที่พื้นฐานที่สุดในการเขียนโปรแกรม มันใช้สำหรับควบคุมการทำงานในกรณีที่เงื่อนไขเป็นจริง นี่เป็นรูปแบบการใช้งานของคำสั่ง If ในภาษา PHP

if (expression)

statements

การตรวจสอบเงือนไขของคำสั่ง If นั้น เกิดจากการประเมิน expression ถ้าหากเป็นจริงโปรแกรมจะทำงานในบล็อคของคำสั่ง If ถ้าหากไม่เป็นจริงโปรแกรมจะข้ามการทำงานไป มาดูตัวอย่างการใช้งาน

<?php

$number = 5;

if ($number == 5) {

echo "Number is equal 5.";

}

?>

ในตัวอย่าง เรามีตัวแปร $number ในการเก็บค่าของตัวเลข เนื่องจาก Expression เป็นจริง นั่นคือในตัวแปรมีค่าเท่ากับ 5 โปรแกรมจึงทำงานในบล็อคของคำสั่ง If และแสดงข้อความ "Number is equal 5."

<?php

$username = "sam43";

$password = "1234";


if ($username == "sam43" && $password == "1234") {

echo "Login succeeded.";

}

?>

ในตัวอย่าง เป็นการตรวจสอบการเข้าสู่ระบบของเว็บไซต์ เราได้สร้าง Expression ที่ซับซ้อนขึ้นโดยมีตัวแปร $username และ $password เพื่อให้ในบล็อคคำสั่งทำงานชื่อผู้ใช้ต้องเป็น "sam43" และรหัสผ่านต้องเป็น "1234" และเนื่องจากค่าในตัวแปรทำให้ Expression เป็นจริง ทำให้โปรแกรมแสดงข้อความว่า "Login succeeded."

Login succeeded

คำสั่ง If Else

คำสั่ง If Else ใช้สำหรับตรวจสอบเงื่อนไขเช่นเดียวกับคำสั่ง If แต่ในการทำงานจะมีการเพิ่มบล็อคของคำสั่ง else เข้ามาถ้าหากเงือนไขในคำสั่ง If ไม่เป็นจริง มาดูตัวอย่างการใช้คำสั่ง If Else ในภาษา PHP

<?php

$money = 80;

if ($money >= 100) {

echo "Buy a video game.";

} else {

echo "Buy a book.";

}

?>

ในตัวอย่างเป็นการใช้งานคำสั่ง If Else กับสถาณการณ์ที่เราได้พูดถึงก่อนหน้านี้ เรามีตัวแปร $money เก็บค่าของจำนวนเงิน ถ้ามีเงินมากกว่าหรือเท่ากับ 100 เหรียญเราจะซื้อวิดีโอเกม แต่ถ้าไม่ใช่จะซื้อหนังสือแทน และเนื่องจากเราได้กำหนดค่าในตัวแปรเพียง 80 โปรแกรมจึงทำงานในบล็อคของคำสั่ง Else แทน

Buy a book.

นี่เป็นผลลัพธ์ของโปรแกรมเมื่อมีเงินไม่เพียงพอ คุณลองเปลี่ยนค่าในตัวแปรให้มากกว่า 100 และดูผลลัพธ์ของมันใหม่อีกครั้ง

คำสั่ง If Else-If

ในคำสั่ง If-Else เป็นคำสั่งในการสร้างเงือนไขแบบสองทางเลือกหรือจริงและไม่จริงเท่านั้น ในภาษา PHP คุณสามารถสร้างเงือนไขแบบหลายทางเลือกได้โดยการใช้คำสั่ง Else-If สำหรับเงือนไขเพิ่มเติมที่ต้องการ เราจะยกตัวอย่างในการใช้กับโปรแกรมคำนวณเกรด

<?php

$score = 79;

if ($score >= 80) {

echo "Your grade is A.";

} else if ($score >= 70) {

echo "Your grade is B.";

} else if ($score >= 60) {

echo "Your grade is C.";

} else if ($score >= 50) {

echo "Your grade is D.";

} else {

echo "Sorry, you got grade F.";

}

?>

ในตัวอย่าง เป็นโปรแกรมคำนวณเกรดโดยการคำนวณจากคะแนนที่มี เราใช้คำสั่งตรวจสอบเงือนไข If-Else แบบหลายทางเลือกในการสร้างเงือนไขใสแต่ละช่วงคะแนนและเกรดที่จะได้รับ

Your grade is B.

นี่เป็นผลลัพธ์เมื่อรันโปรแกรม เพราะว่าคะแนน 79 อยู่ในช่วงของเกรด B ที่เราได้กำหนดในเงือนไข คุณอาจจะลองเปลี่ยนเงือนไขเป็นแบบอื่นเพื่อดูผลลัพธ์

คำสั่ง If ซ้อนกัน

ในการเขียนโปรแกรมคำสั่งเลือกเงื่อนไขสามารถที่จะซ้อนกันได้ ไม่ว่าจะเป็นคำสั่ง If If-Else เพื่อสร้างเงือนไขหรือในโปรแกรมที่ซับซ้อนขึ้น คุณจะต้องได้พบกับเหตุการณ์ที่คำสั่งเหล่านี้จะซ้อนกันอยู่แน่นอน

<?php

$name = "Mateo";


$logged_in = true;

$lang = "en";


if ($logged_in) {

echo "Hello $name, you now logged in.\n";


if ($lang == "en") {

echo "The website displayed in English.\n";

} else if ($lang == "th") {

echo "The website displayed in Thai.\n";

} else {

echo "The language was not set.\n";

}

} else {

echo "You are not logged in.\n";

}

?>


ในตัวอย่าง เป็นการใช้งานคำสั่งเงือนไขซ้อนกัน คำสั่ง If ด้านนอกเป็นการตรวจสอบการเข้าสู่ระบบของเว็บไซต์ ถ้าผู้ใช้เข้าสู่ระบบเราจะแสดงข้อความทักทายจะมีคำสั่ง If ที่ซ้อนกันอยู่ภายในสำหรับตรวจสอบภาษาที่จะแสดงในเว็บไซต์

Hello Mateo, you now logged in.

The website is displayed in English.

นี่เป็นผลลัพธ์เมื่อรันโปรแกรม ซึ่งทำงานในบล็อคของคำสั่งที่ซ้อนกันของ if ($logged_in) และ if ($lang == "en") ตามลำดับ

คำสั่ง Switch

ในภาษา PHP ยังมีคำสั่งเลือกเงือนไขอีกคำสั่งหนึ่งคือคำสั่ง Switch ซึ่งการทำงานของคำสั่งนี้จะคล้ายกับคำสั่ง If Else-If ซึ่งเป็นการเลือกแบบหลายทางเลือก แต่ในคำสั่ง Switch จะใช้สำหรับเปรียบเทียบกับค่าคงที่โดยตรงที่ไม่ใช่ Expression มาดูตัวอย่างการใช้งาน

<?php


$abb = "th";


switch ($abb) {

case "de":

$country = "Germany";

break;

case "th":

$country = "Thailand";

break;

case "hu":

$country = "Hungary";

break;

case "tr":

$country = "Turkey";

break;

default:

$country = "Unknown country";

}


echo "Your country is $country.";

?>


ในตัวอย่างเป็นโปรแกรมในการหาชื่อประเทศจากรหัสย่อโดยการใช้คำสั่ง Switch เรามีตัวแปร $abb สำหรับเก็บรหัสย่อของประเทศในโลก ในการใช้งานจะส่งเป็นอากิวเมนต์เข้าไปยังคำสั่ง Switch และโปรแกรมจะทำการตรวจสอบกับเงือนไขในแต่ละ case เมื่อเงือนไขตรงกับ Case ใดๆ โปรแกรมจะทำงานคำสั่งหลังจาก Case นั้นจนสิ้นสุดบล็อคคำสั่ง Switch เราจำเป็นต้องใช้คำสั่ง break เพื่อหยุดการทำงานของโปรแกรมสำหรับแต่ละ Case

Your country is Thailand.

นี่เป็นผลลัพธ์เมื่อรันโปรแกรม ในตัวแปร $country จะมีค่าเป็น "Thailand" เพราะว่าตรงกับเงื่อนไขใน case "th"