Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Pengendali Nullsafe PHP (?-) Dapat Menghalang Pengecualian Penunjuk Null?

Bagaimanakah Pengendali Nullsafe PHP (?-) Dapat Menghalang Pengecualian Penunjuk Null?

Patricia Arquette
Lepaskan: 2024-12-19 07:07:26
asal
658 orang telah melayarinya

How Can PHP's Nullsafe Operator (?-) Prevent Null Pointer Exceptions?

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() : '';
Salin selepas log masuk

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();
Salin selepas log masuk

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:

  • Akses tatasusunan ([]) : $data?->[0]
  • Akses harta benda (->): $data?->name
  • Akses harta nullsafe (?->): $data?->name
  • Akses harta statik (::): Ibu bapa::nama
  • Panggilan kaedah (->): $data->getName()
  • Panggilan kaedah Nullsafe (?->): $data?->getName()
  • Panggilan kaedah statik (::): Induk::getName()

Sebagai contoh, kod di bawah:

$string = $data?->getObject()->getName() . " after";
Salin selepas log masuk

sama dengan:

$string = (isset($data) && $data !== null) ? $data->getObject()->getName() . " after" : null;
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan