ตัวดำเนินการเงื่อนไขแบบสามส่วนใน PHP
สมมติว่าเรามีโค้ดต่อไปนี้ที่ตรวจสอบว่า
ผู้ใช้มีอายุ 18 ปีแล้วหรือไม่:
<?php
$age = 17;
if ($age >= 18) {
$adult = true;
} else {
$adult = false;
}
var_dump($adult);
?>
อย่างที่คุณเห็น โครงสร้าง if-else
จำเป็นเพียงเพื่อเขียนค่า
ลงในตัวแปร $adult สำหรับ
งานดังกล่าว เมื่อในเงื่อนไขของเราเกิด
เพียงแค่การเขียนตัวแปรเดียว มี
วิธีแก้ปัญหาที่สั้นกว่าผ่านสิ่งที่เรียกว่า
ตัวดำเนินการเงื่อนไขแบบสามส่วน
ไวยากรณ์ของมันเป็นดังนี้:
<?php
variable = condition ? value1 : value2;
?>
ตัวดำเนินการทำงานดังนี้: หากเงื่อนไขเป็นจริง
จะส่งคืน value1 มิฉะนั้น
จะส่งคืน - value2 มาเขียน
โค้ดที่ให้ไว้ตอนต้นบทเรียนใหม่ด้วย
ตัวดำเนินการเงื่อนไขแบบสามส่วน:
<?php
$age = 17;
$adult = $age >= 18 ? true: false;
var_dump($adult);
?>
โดยวิธี คุณสามารถไม่เขียนผลลัพธ์ลงใน
ตัวแปร แต่แสดงผลทันทีผ่าน var_dump:
<?php
$age = 17;
var_dump( $age >= 18 ? true: false );
?>
ควรใช้ตัวดำเนินการเงื่อนไขแบบสามส่วนเฉพาะใน กรณีที่ง่ายที่สุดเท่านั้น เนื่องจากการใช้งานมัน ทำให้เข้าใจโค้ดได้ยาก
กำหนดให้มีตัวแปร $num ซึ่ง
อาจเป็นค่าลบหรือค่าบวกก็ได้
เขียนลงในตัวแปร $res เป็นตัวเลข
1 หากตัวแปร $num มากกว่า
หรือเท่ากับศูนย์ และตัวเลข -1 หากตัวแปร
$num น้อยกว่าศูนย์