ฉันเพิ่งตรวจสอบบางส่วนของรหัสของฉันและสังเกตเห็นว่าในแบบที่ขาดสติฉันจะออกจากโครงสร้างดังต่อไปนี้:
$guid = empty($subscription->guid) ? : $subscription->guid;
ตอนนี้สิ่งนี้ไม่ได้ทำในสิ่งที่ควรจะเป็นและผิดแต่เนื่องจากคุณสมบัตินั้นถูกตั้งค่าเสมอตอนนี้มันทำงานได้ดีและไม่มีข้อผิดพลาดทางไวยากรณ์ตั้งแต่ 5.3 เนื่องจากการเปลี่ยนแปลงต่อไปนี้ :
ตั้งแต่ PHP 5.3 เป็นไปได้ที่จะปล่อยให้ผู้ให้บริการรายกลางอยู่ Expression expr1?: expr3 ส่งคืน expr1 ถ้า expr1 หาค่าเป็น TRUE และ expr3 เป็นอย่างอื่น
ฉันไม่ได้ตระหนักถึงการเปลี่ยนแปลงนี้และตอนนี้ฉันอยากรู้ว่าฉันควรจะใช้มันหรือไม่ นี่คือสิ่งที่ฉันขาดไปอย่างมากจากภาษาเช่นทับทิมที่คุณสามารถทำได้เช่นa = b || c
เพื่อให้ได้บูลีน 'ของจริง' b
หรือc
มากกว่า อย่างไรก็ตามไวยากรณ์ที่พวกเขาเลือกสำหรับผู้ประกอบการที่ดูเหมือนจะเป็นเรื่องง่ายสำหรับฉัน ฉันควรจะใช้สิ่งนี้ในรหัสการผลิตหรือไม่? แน่นอนว่ามันทำให้ฉันประหลาดใจเมื่อฉันเห็นมันโดยบังเอิญ