PHP Academy · Pelajaran

Operator Nullsafe dan Jenis Kesatuan

Gunakan ?-> untuk merantaikan objek boleh nol dengan selamat dan mengisytiharkan petunjuk jenis kesatuan.

Pelajaran 2 daripada 413 langkah

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?

Percuma untuk bermula

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

  1. Ungkapan Match dan Argumen Bernama
  2. Operator Nullsafe dan Jenis Kesatuan
  3. Penghitungan (Enum)
  4. Fiber: Keserentakan Koperatif
← Kembali ke PHP Academy