Operator Nullsafe dan Jenis Kesatuan
Gunakan ?-> untuk merantaikan objek boleh nol dengan selamat dan mengisytiharkan petunjuk jenis kesatuan.
Operator Nullsafe dan Jenis Kesatuan ialah pelajaran PHP Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran PHP Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.
Operator Nullsafe
PHP 8.0 memperkenalkan ?->. Jika sebelah kiri ialah null, seluruh rantaian dihentikan lebih awal dan mengembalikan null dan bukannya mencetuskan ralat.
Masalah yang Diselesaikannya
Tanpa nullsafe, perantaian objek yang boleh bernilai null memerlukan semakan null yang panjang.
<?php
// Old way:
$city = null;
if ($user !== null && $user->getAddress() !== null) {
$city = $user->getAddress()->getCity();
}
// PHP 8 nullsafe:
$city = $user?->getAddress()?->getCity();Nullsafe dengan Panggilan Kaedah
Setiap ?-> dalam rantaian disemak secara berasingan. null pertama menghentikan baki rantaian lebih awal.
<?php
$name = $order?->getCustomer()?->getName() ?? "Guest";Nullsafe dengan Sifat
Ia juga berfungsi dengan capaian sifat.
<?php
$zip = $user?->address?->zip;Nullsafe Tidak Melangkau Kesan Sampingan
Jika rantaian nullsafe dihentikan lebih awal, panggilan kaedah seterusnya dalam rantaian tidak dilaksanakan — tiada kesan sampingan berlaku.
Jenis Kesatuan
Jenis kesatuan PHP 8.0 membolehkan anda mengisytiharkan bahawa parameter, sifat atau nilai pulangan menerima salah satu daripada beberapa jenis.
<?php
function formatId(int|string $id): string {
return (string) $id;
}Contoh Jenis Kesatuan
Jenis kesatuan yang biasa digunakan:
<?php
function process(int|float $amount): float {
return (float) $amount;
}
function findUser(int|string $idOrEmail): ?User {
// search by ID or email
}Jenis Boleh Bernilai Null
?Type ialah bentuk ringkas bagi Type|null — nilainya mungkin daripada jenis tersebut atau null.
<?php
function greet(?string $name): string {
return "Hello, ".($name ?? "stranger");
}null dalam Jenis Kesatuan
Anda boleh menyertakan null secara jelas dalam jenis kesatuan: int|string|null.
Jenis Persilangan (PHP 8.1)
PHP 8.1 menambah jenis persilangan (A&B) — nilai tersebut mesti memenuhi semua jenis secara serentak. Jenis ini berguna untuk suntikan kebergantungan yang selamat dari segi jenis.
<?php
function process(Iterator&Countable $collection): void {
// $collection must be both Iterator AND Countable
}Paksaan Jenis berbanding strict_types
Tanpa declare(strict_types=1), PHP mungkin memaksa penukaran nilai (contohnya "42" kepada 42). Dengan mod ketat, hanya padanan jenis yang tepat diterima.
Ringkasan
Operator nullsafe (?->) menghapuskan semakan null yang berulang dalam rantaian. Jenis kesatuan (int|string) membolehkan tandatangan fungsi yang fleksibel tetapi selamat dari segi jenis.
Semakan Pantas
Apakah yang dikembalikan operator nullsafe jika suatu kaedah dalam rantaian mengembalikan null?
Pelajari PHP dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 49
- Pelajaran
- 195
Soalan Lazim
Adakah pelajaran “Operator Nullsafe dan Jenis Kesatuan” percuma?
Ya — teks penuh “Operator Nullsafe dan Jenis Kesatuan” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus PHP Academy, tingkat taraf kepada CoddyKit PRO. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Operator Nullsafe dan Jenis Kesatuan”?
Gunakan ?-> untuk merantaikan objek boleh nol dengan selamat dan mengisytiharkan petunjuk jenis kesatuan. Anda berlatih PHP Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan PHP Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran PHP Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Operator Nullsafe dan Jenis Kesatuan” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran PHP Academy ini?
Ya. Setiap pelajaran PHP Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Ungkapan Match dan Argumen Bernama
- Operator Nullsafe dan Jenis Kesatuan
- Penghitungan (Enum)
- Fiber: Keserentakan Koperatif