Rumah >pembangunan bahagian belakang >tutorial php >Bolehkah Operator Nullsafe PHP Mempermudahkan Akses Harta Bersarang?

Bolehkah Operator Nullsafe PHP Mempermudahkan Akses Harta Bersarang?

Barbara Streisand
Barbara Streisandasal
2024-12-14 04:58:09361semak imbas

Can PHP's Nullsafe Operator Simplify Nested Property Access?

Memperkenalkan Operator Nullsafe dalam PHP

Pengendali nullsafe (?->) membenarkan pembangun menulis kod yang mengakses sifat objek dengan selamat dan kaedah tanpa memerlukan semakan nol yang jelas. Ini memudahkan kod dan meningkatkan kebolehbacaan, terutamanya dalam hierarki objek yang kompleks.

Pertanyaan

Bolehkah kita menulis semula pernyataan berikut menggunakan pengendali nullsafe?

echo $data->getMyObject() != null ? $data->getMyObject()->getName() : '';

Jawapan

Dari PHP 8 seterusnya, kita boleh menggunakan pengendali nullsafe bersama-sama dengan pengendali gabungan nol (?) untuk mencapai gelagat yang diingini.

Penyelesaian

echo $data->getMyObject()?->getName() ?? '';

The ?-> ; operator memutuskan rantaian operator apabila menemui nilai null, mengembalikan null secara berkesan dan menamatkan ungkapan. Operator yang memeriksa sifat objek atau menggunakan kaedah dianggap sebagai sebahagian daripada rantaian, termasuk:

  • Akses tatasusunan ([]), akses harta (->), akses harta nullsafe (?->) , akses sifat statik (::), panggilan kaedah (->), panggilan kaedah nullsafe (?->), dan panggilan kaedah statik (::)

Selain itu, jika pengendali berikutnya dalam rantai tidak dianggap sebagai sebahagian daripada rantai (cth., operator gabungan dalam contoh di bawah), mereka tidak akan dilitar pintas:

$string = $data?->getObject()->getName() . " after";

Dalam kes ini, jika $data adalah batal, kod akan menghasilkan:

$string = null . " after";

Atas ialah kandungan terperinci Bolehkah Operator Nullsafe PHP Mempermudahkan Akses Harta Bersarang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn