Saya baru saja melihat video tentang fitur-fitur PHP 7.4 mendatang dan melihat ??=
operator baru ini . Saya sudah tahu ??
operatornya. Bagaimana ini berbeda?
10
Dari dokumen :
Coalesce equal atau ?? = operator adalah operator penugasan. Jika parameter kiri nol, berikan nilai parameter kanan ke parameter kiri. Jika nilainya tidak nol, tidak ada yang dilakukan.
Contoh:
// The folloving lines are doing the same
$this->request->data['comments']['user_id'] = $this->request->data['comments']['user_id'] ?? 'value';
// Instead of repeating variables with long names, the equal coalesce operator is used
$this->request->data['comments']['user_id'] ??= 'value';
Jadi pada dasarnya itu hanya singkatan untuk menetapkan nilai jika belum ditetapkan sebelumnya.
The folloving lines...
Dalam PHP 7 ini awalnya dirilis, memungkinkan pengembang untuk menyederhanakan cek isset () dikombinasikan dengan operator ternary. Misalnya, sebelum PHP 7, kita mungkin memiliki kode ini:
Ketika PHP 7 dirilis, kami mendapatkan kemampuan untuk menulis ini sebagai:
Sekarang, bagaimanapun, ketika PHP 7.4 dirilis, ini dapat disederhanakan lebih jauh ke:
Satu kasus di mana ini tidak berhasil adalah jika Anda ingin menetapkan nilai ke variabel yang berbeda, sehingga Anda tidak akan dapat menggunakan opsi baru ini. Dengan demikian, sementara ini disambut mungkin ada beberapa kasus penggunaan terbatas.
sumber
Operator penugasan nol adalah cara singkat menetapkan hasil dari operator penggabungan nol.
Contoh dari catatan rilis resmi :
sumber
Contoh Dokumen :
sumber