โอเปอเรเตอร์แบบสามส่วน
ตัวดำเนินการ ternary ใช้เพื่อแทนที่คำสั่ง if else เป็นคำสั่งเดียว
ไวยากรณ์
(condition) ? expression1 : expression2;
นิพจน์เทียบเท่า
if(condition) {
return expression1;
}
else {
return expression2;
} หากเงื่อนไขเป็นจริง จะส่งกลับผลลัพธ์ของ expression1 มิฉะนั้นจะส่งคืนผลลัพธ์ของ expression2 โมฆะไม่ได้รับอนุญาตในเงื่อนไขหรือนิพจน์
ตัวดำเนินการรวมค่า Null
โอเปอเรเตอร์การรวมค่า Null ใช้เพื่อจัดเตรียมค่าที่ไม่เป็น null ในกรณีที่ตัวแปรเป็นค่าว่าง
ไวยากรณ์
(variable) ?? expression;
นิพจน์เทียบเท่า
if(isset(variable)) {
return variable;
}
else {
return expression;
} หากตัวแปรเป็นค่าว่าง มันจะส่งคืนผลลัพธ์ของนิพจน์
ตัวอย่าง
<!DOCTYPE html>
<html>
<head>
<title>PHP Example</title>
</head>
<body>
<?php
// fetch the value of $_GET['user'] and returns 'not passed'
// if username is not passed
$username = $_GET['username'] ?? 'not passed';
print($username);
print("<br/>");
// Equivalent code using ternary operator
$username = isset($_GET['username']) ? $_GET['username'] : 'not passed';
print($username);
print("<br/>");
?>
</body>
</html> ผลลัพธ์
not passed not passed