Jenis boleh nullable ialah ciri berkuasa yang diperkenalkan dalam PHP 7.1 yang membolehkan anda mengisytiharkan pembolehubah, parameter dan nilai kembali sebagai boleh batal. Ini menandakan bahawa mereka boleh menerima atau mengembalikan sama ada jenis yang ditentukan atau NULL.
Menggunakan tanda soal (?) sebelum pengisytiharan jenis dalam fungsi parameter menunjukkan bahawa parameter boleh sama ada jenis yang ditentukan atau NULL. Contohnya:
public function (?string $parameter1, string $parameter2) {}
Dalam contoh ini, kedua-dua parameter boleh dibatalkan. Anda boleh menghantar sama ada nilai rentetan atau NULL sebagai hujah kepada fungsi.
Begitu juga, jenis return fungsi boleh diisytiharkan sebagai nullable menggunakan sintaks tanda soal. Ini menunjukkan bahawa fungsi boleh mengembalikan sama ada jenis yang ditentukan atau NULL. Contohnya:
function error_func(): int { return null ; // Uncaught TypeError: Return value must be of the type integer } function valid_func(): ?int { return null ; // OK }
Bermula dengan PHP 7.4, anda juga boleh mengisytiharkan jenis harta sebagai boleh batal. Ini membolehkan sifat mempunyai sama ada jenis yang ditentukan atau NULL. Contohnya:
class Foo { private ?object $bar = null; // OK : can be null (nullable type) }
PHP 8.0 memperkenalkan tatatanda trengkas untuk jenis kesatuan boleh null. Menulis "?T" adalah bersamaan dengan "T|null". Ini membolehkan pengisytiharan jenis yang lebih ringkas.
class Foo { private object|null $baz = null; // as of PHP 8.0 }
Jika anda cuba menggunakan sintaks tanda soal dengan Versi PHP lebih rendah daripada 7.1, anda akan menghadapi ralat sintaks. Dalam kes sedemikian, anda harus mengalih keluar tanda soal.
Jenis nullable menyediakan cara yang mudah untuk mengendalikan nilai nullable dalam PHP. Ia membenarkan anda mengisytiharkan bahawa pembolehubah, parameter atau nilai pulangan boleh sama ada jenis tertentu atau NULL, menjadikan kod anda lebih teguh dan lebih mudah untuk diselenggara.
Atas ialah kandungan terperinci Bagaimanakah Jenis Nullable Berfungsi dalam PHP, dan Apakah Peraturan Sintaks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!