Saya baru-baru ini meninjau beberapa kode saya dan memperhatikan bahwa karena ketidakhadiran, saya meninggalkan struktur seperti berikut:
$guid = empty($subscription->guid) ? : $subscription->guid;
Sekarang, ini tidak melakukan apa yang seharusnya dan salah , tetapi karena properti itu selalu disetel sekarang berfungsi dengan baik, dan tidak ada kesalahan sintaks sejak 5.3 karena perubahan berikut :
Sejak PHP 5.3, dimungkinkan untuk meninggalkan bagian tengah dari operator ternary. Ekspresi expr1?: Expr3 mengembalikan expr1 jika expr1 mengevaluasi ke TRUE, dan expr3 sebaliknya.
Saya tidak menyadari perubahan ini, dan sekarang saya ingin tahu apakah saya harus menggunakannya atau tidak. Ini adalah sesuatu yang sangat saya lewatkan dari bahasa-bahasa seperti ruby di mana Anda dapat melakukan mis, a = b || c
untuk mendapatkan salah satu b
atau c
lebih daripada boolean 'nyata'. Namun, sintaks yang mereka pilih untuk operator ternary tampaknya sedikit berlawanan dengan intuisi bagi saya. Haruskah saya menggunakan ini dalam kode produksi? Itu benar-benar membuat diriku terlempar ketika aku melihatnya secara tidak sengaja.