Katakan anda mempunyai objek yang mewakili pengguna dan anda mahu mengakses alamat mereka.
Pada masa lalu, anda mungkin pernah melakukan sesuatu seperti ini:
const user = { name: "Alice", address: { street: "123 Main St" } }; const street = user.address && user.address.street; console.log('Street: ', street); // Output: 123 Main St
Tetapi apa yang berlaku jika objek pengguna tidak mempunyai sifat alamat atau objek alamat tidak mempunyai harta jalan?
Anda akan mendapat ralat!
Pengendali ini (?.) membenarkan anda mengakses sifat bersarang dengan selamat, mengembalikan tidak ditentukan jika mana-mana bahagian rantai hilang.
Contohnya:
const user = { name: "Bob" }; const street = user.address?.street; console.log('Street: ', street); // Output: undefined
Lihat betapa lebih bersih dan ringkas kod itu?
Pelindung Nilai Lalai.
Sekarang, mari bayangkan anda mahu memberikan nilai lalai kepada pembolehubah jika ia batal atau tidak ditentukan. Secara tradisinya, anda mungkin menggunakan operator OR (||). Walau bagaimanapun, ini boleh membawa kepada gelagat yang tidak dijangka jika pembolehubah itu memegang nilai "palsu" seperti 0 atau rentetan kosong.
Mengapa ia berguna:
let userSettings = null; // Imagine this comes from an API or user input // Without nullish coalescing: let theme = userSettings !== null && userSettings !== undefined ? userSettings.theme : 'light'; // With nullish coalescing: let theme = userSettings?.theme ?? 'light'; // If userSettings.theme is null or undefined, 'light' is used
Ia amat berguna apabila berurusan dengan sifat pilihan atau data yang berpotensi hilang.
Perangkaian pilihan dan penggabungan batal membantu anda menulis kod yang lebih mudah dibaca, teguh dan tahan ralat.
Atas ialah kandungan terperinci Rantaian Pilihan dan Penggabungan Nullish. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!