หลายๆท่านคงคุ้นเคยกับคำสั่งเงื่อนไขประเภท if กับมาบ้างแล้ว เพราะคำสั่งเงื่อนไข if นั้นเป็นคำสั่งที่เราคุ้นเคยกันดีหากเราต้องการที่จะสร้างเงื่อนไขอะไรซักอย่างที่ทำให้โปรแกรมเรานั้นตรวจสอบและแยกผลลัพธ์ต่างๆ ซึ่งปกติแล้วคำสั่ง if นั้นจะถูกเขียนอยู่ในลักษณะด้านล่างนี้
การเขียน if แบบเก่า
if(เงื่อนไข){
คำสั่งที่จะทำถ้าตรงกับเงื่อนไข
}
แต่วันนี้เราจะมานำเสนอวิธีการเขียนคำสั่งเงื่อนไข if ที่เรียกกันว่า shorthand if กันครับ ซึ่งวิธีการเขียน shorthand if นั้นมีจุดเด่นกว่าการเขียน if แบบธรรมดาคือ ในเรื่องของลักษณะคำสั่งที่สั้นกว่า สามารถเขียนอยู่ในบรรทัดเดียวได้ แถมยังสามารถประยุกต์ใช้เพื่อนำไปแทรกในตำแหน่งต่างๆภายใน code เราได้อีกด้วย ซึ่งทำให้การเขียนแบบนี้คล่องตัวกว่าในบางกรณี ซึ่งรูปแบบนั้นเป็นยังไงเรามาดูกันครับ
รูปแบบการเขียน shorthand if
(เงื่อนไข ? ค่าหากเงื่อนไขถูกต้อง : ค่าหากไม่ตรงเงื่อนไข)
ตัวอย่างการใช้งาน shorthand if ในลักษณะต่างๆ
การใช้ shorthand if เพื่อเช็คเงื่อนไขก่อนเก็บค่าตัวแปร
$is_premium_user = ($user['permissions'] == 'premium' ? true : false);
การใช้ shorthand if กับการแสดงข้อความโดย echo
echo 'ยินดีต้อนรับ'.($user['login'] ? $user['first_name'] : 'Guest');
การใช้ shorthand if กับ error_reporting
error_reporting($IS_WEBSITE_LIVE ? 0 : E_STRICT);
การใช้ shorthand if กับ base part
echo '<base href="http'.($PAGE_IS_SECURE ? 's' : '').'://itnews4u.com" />';
การใช้ shorthand if ในรูปแบบของ Nested
echo 'จากคะแนนประเมิณได้ว่าคุณ : '.($score > 80 ? ($age > 10 ? 'ฉลาด' : 'อัฉริยะ') : ($age > 10 ? 'ต้องขยันเพิ่มละ' : 'อยู่ในเกณฑ์ดี') );
การใช้ shorthand if กับ PHP Redirect
header('Location: '.($valid_login ? '/user/index.php' : 'login.php?status=failed')); exit();
นอกจากตัวอย่างแล้วเรายังสามารถนำ shothand if ไปใช้ในรูปแบบอื่นๆ ได้อีกมาก ซึ่งขึ้นอยู่กับการประยุกต์ใช้ ซึ่งถือได้ว่ารูปแบบการเขียน shorthand if นั้นช่วยลดจำนวนซอร์สโค้ด และทำให้ผู้ใช้งานสามารถใช้คำสั่งประเภทเงื่อนไข if ได้คล่องตัวขึ้น จากการเขียน if แบบเก่าซึ่งผมว่าอาจจะยากสำหรับมือใหม่ไปนิดหน่อยเพราะต้องมาเขียนอยู่ในบรรทัดเดียวแถมยังไม่พอยังต้องมาต่อกับสตริงอีกด้วย แต่ผมเชื่อว่าหากเราเข้าใจคำสั่งเงื่อนไขของ if แล้วมาในระดับหนึ่งแล้ว เราก็จะสามารถเข้าใจรูปแบบการเขียน shorthand if นี้ได้ไม่ยากครับ