สารละลาย
echo $person->middleName ?? 'Person does not have a middle name';
เพื่อแสดงให้เห็นว่าสิ่งนี้จะดูในคำสั่ง if เพื่อความชัดเจนมากขึ้นเกี่ยวกับวิธีการทำงาน
if($person->middleName ?? false) {
echo $person->middleName;
} else {
echo 'Person does not have a middle name';
}
คำอธิบาย
วิธี PHP แบบดั้งเดิมในการตรวจสอบการมีอยู่ของสิ่งที่ต้องทำ:
if(isset($person->middleName)) {
echo $person->middleName;
} else {
echo 'Person does not have a middle name';
}
หรือสำหรับวิธีที่เฉพาะเจาะจงมากขึ้นในชั้นเรียน:
if(property_exists($person, 'middleName')) {
echo $person->middleName;
} else {
echo 'Person does not have a middle name';
}
สิ่งเหล่านี้ใช้ได้ทั้งในรูปแบบข้อความยาว แต่ในประโยคที่สามพวกเขาจะยุ่งยากโดยไม่จำเป็นเช่น:
isset($person->middleName) ? echo $person->middleName : echo 'Person does not have a middle name';
คุณยังสามารถทำสิ่งนี้ได้ด้วยตัวดำเนินการประกอบไปด้วย:
echo $person->middleName ?: 'Person does not have a middle name';
แต่ ... หากค่านั้นไม่มีอยู่ (ไม่ได้ตั้งค่าไว้) จะเป็นการเพิ่มE_NOTICE
และไม่ใช่วิธีปฏิบัติที่ดีที่สุด หากค่าคือnull
มันจะไม่เพิ่มข้อยกเว้น
ดังนั้นผู้ประกอบการที่สามในการช่วยเหลือทำให้คำตอบเล็ก ๆ น้อย ๆ นี้เป็นระเบียบ:
echo $person->middleName ?? 'Person does not have a middle name';