Nullsafe Operator dalam PHP: Mencapai Navigasi Objek Bersyarat
Dalam PHP, mengakses sifat objek dan kaedah panggilan berpotensi mengakibatkan pengecualian penuding nol jika objek adalah batal atau tidak mempunyai ahli yang diminta. Untuk menangani isu ini, pengendali nullsafe (?-) yang diperkenalkan dalam PHP 8 membolehkan navigasi selamat sifat dan kaedah objek.
Pertimbangkan pernyataan berikut:
echo $data->getMyObject() != null ? $data->getMyObject()->getName() : '';
Pernyataan ini menyemak sama ada $data objek mempunyai sifat getMyObject() dan jika ia tidak batal. Jika harta itu wujud dan tidak batal, ia meneruskan untuk mengakses sifat getName() dalam objek itu. Walau bagaimanapun, jika harta itu tidak wujud atau batal, penyata tidak akan diteruskan.
Menggunakan pengendali nullsafe, kita boleh menulis semula penyataan sebagai:
echo $data->getMyObject()?->getName();
Dalam penyata ini , jika $data adalah null atau tidak mempunyai sifat getMyObject(), rantai pengendali ditamatkan dan null dikembalikan. Ini membolehkan kami mengendalikan sifat yang hilang atau panggilan kaedah dengan anggun tanpa pengecualian.
Pengendali nullsafe berfungsi dengan pengendali berikut yang mengakses sifat dan kaedah objek:
Sebagai contoh, kod di bawah:
$string = $data?->getObject()->getName() . " after";
sama dengan:
$string = (isset($data) && $data !== null) ? $data->getObject()->getName() . " after" : null;
jika $data ialah null.
Dengan menggunakan operator nullsafe, kami boleh menulis kod yang lebih bersih dan ringkas sambil memastikan ketiadaan pengecualian penuding nol.
Atas ialah kandungan terperinci Bagaimanakah Pengendali Nullsafe PHP (?-) Dapat Menghalang Pengecualian Penunjuk Null?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!