Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Kuasai ciri baharu PHP8: Bagaimana untuk menggunakan pengendali dan kod nullsafe baharu untuk mengendalikan objek yang boleh dibatalkan?

Kuasai ciri baharu PHP8: Bagaimana untuk menggunakan pengendali dan kod nullsafe baharu untuk mengendalikan objek yang boleh dibatalkan?

WBOY
WBOYasal
2023-09-11 16:07:411349semak imbas

Kuasai ciri baharu PHP8: Bagaimana untuk menggunakan pengendali dan kod nullsafe baharu untuk mengendalikan objek yang boleh dibatalkan?

Kuasai ciri baharu PHP8: Bagaimana untuk menggunakan pengendali dan kod nullsafe baharu untuk mengendalikan objek boleh null?

Pada penghujung tahun 2020, PHP mengeluarkan versi terkini—PHP 8. Versi ini memperkenalkan banyak fungsi dan ciri baharu yang menarik, salah satunya ialah pengendali nullsafe, yang menyediakan cara yang lebih mudah dan ringkas untuk kita berurusan dengan objek boleh null. Dalam artikel ini, kami akan meneroka cara memanfaatkan pengendali nullsafe PHP8 dan helah pengekodan lain untuk mengendalikan objek nullable.

Mengapa berurusan dengan objek yang boleh dibatalkan? Apabila kami menggunakan API luaran untuk mendapatkan data atau berinteraksi dengan pangkalan data, ia sering berlaku bahawa sesetengah medan data boleh dibatalkan. Dalam kod, jika objek nullable ini tidak dikendalikan dengan betul, ralat dan pengecualian akan berlaku. Dalam versi PHP sebelumnya, kami perlu menggunakan banyak semakan nol dan penyataan bersyarat untuk mengendalikan objek boleh batal, yang menjadikan kod itu bertele-tele dan sukar untuk dikekalkan. Pengendali nullsafe dalam PHP 8 memberikan kami cara yang ringkas dan mudah difahami untuk mengendalikan objek yang boleh dibatalkan ini.

Jadi, apakah pengendali nullsafe? Pengendali nullsafe (?->) ialah ciri yang baru diperkenalkan dalam PHP 8, yang membolehkan kami menggunakan secara langsung sifat atau kaedah objek tanpa memerlukan semakan nol. Apabila kita menggunakan operator nullsafe, jika objek adalah null, operator akan terus mengembalikan null tanpa ralat. Ini bermakna kami tidak lagi perlu menulis banyak kod semakan nol secara manual, yang sangat memudahkan kod kami.

Mari kita lihat contoh, dengan mengandaikan kita mempunyai objek Pengguna yang mengandungi sifat alamat boleh batal. Pada masa lalu, kami mungkin mengendalikannya seperti ini:

if ($user !== null) {
    if ($user->address !== null) {
        echo $user->address->city;
    }
}

Kod sedemikian kelihatan agak bertele-tele dan tidak begitu mudah dibaca. Dengan pengendali nullsafe, kita boleh memudahkannya seperti ini:

echo $user?->address?->city;

Dengan menggunakan operator nullsafe, kita menambah terus selepas sifat atau kaedah objek? ->, tidak perlu risau tentang ralat yang disebabkan oleh nilai nol. Jika objek $user adalah null, keseluruhan ungkapan akan kembali null secara langsung.

Selain pengendali nullsafe, PHP 8 juga memperkenalkan beberapa ciri lain untuk mengendalikan objek nullable. Sebagai contoh, kita boleh menggunakan pengendali penugasan gabungan null baharu (??=) untuk memulakan sifat boleh batal. Dengan cara ini, jika harta itu sudah mempunyai nilai, ia tidak akan ditimpa oleh nilai baharu.

Berikut ialah contoh:

$user->name ??= 'Unknown';

Jika atribut nama objek $user kosong, ia akan diberikan nilai 'Tidak diketahui', jika tidak, tiada perubahan akan dibuat.

Selain itu, kami juga boleh menggunakan operator penggabungan nol (??) untuk menetapkan nilai lalai untuk objek yang boleh dibatalkan. Contohnya, jika sifat alamat objek $user kosong, kita boleh menetapkannya kepada objek alamat lalai:

$user->address = $user->address ?? new Address();

Jika sifat alamat objek $user kosong, ia akan ditetapkan kepada objek Alamat baharu.

Ringkasnya, pengendali nullsafe PHP 8 dan ciri lain memberikan kami cara yang lebih ringkas dan jelas untuk menangani objek yang boleh dibatalkan. Dengan menggunakan ciri baharu ini, kami boleh mengurangkan lebihan kod dan meningkatkan kebolehbacaan dan kebolehselenggaraan kod. Walau bagaimanapun, kami masih perlu menggunakan ciri ini dengan berhati-hati untuk mengelakkan penyalahgunaan yang akan mengurangkan kebolehbacaan kod. Memahami senario penggunaan ciri baharu ini dan menulis kod berdasarkan keperluan sebenar akan menjadikan kod kami lebih mantap dan boleh dipercayai. Marilah kami menguasai ciri baharu PHP8 dan meningkatkan kecekapan pembangunan kami!

Atas ialah kandungan terperinci Kuasai ciri baharu PHP8: Bagaimana untuk menggunakan pengendali dan kod nullsafe baharu untuk mengendalikan objek yang boleh dibatalkan?. 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