Rumah pembangunan bahagian belakang tutorial php Jenis kesatuan dalam PHP8.0

Jenis kesatuan dalam PHP8.0

May 14, 2023 am 08:58 AM
php pengaturcaraan jenis kesatuan

Dengan keluaran PHP 8.0, jenis baharu telah diperkenalkan - jenis kesatuan (juga dipanggil "jenis kesatuan"), yang boleh digunakan untuk mengisytiharkan bahawa pembolehubah boleh menjadi salah satu daripada berbilang jenis.

Dalam banyak bahasa berorientasikan objek, kita boleh menggunakan konsep polimorfisme untuk menentukan bahawa pembolehubah boleh menjadi tika jenisnya sendiri, atau subjenisnya atau antara muka yang dilaksanakan Sebarang kejadian. Tetapi dalam PHP, kami hanya dapat mencapai matlamat ini dengan meletakkan beberapa jenis pernyataan bersyarat bersama-sama, termasuk dalam blok bersyarat suis, jika, dan elseif. Pendekatan ini kadangkala menyusahkan dan sukar untuk dikekalkan.

Oleh itu, PHP8.0 menambah jenis kesatuan baharu untuk mencapai polimorfisme tanpa pernyataan bersyarat. Dalam artikel ini, kami akan memperkenalkan definisi, penggunaan, sintaks dan beberapa pertimbangan jenis kesatuan.

  1. Tentukan jenis kesatuan

Apabila mentakrifkan pembolehubah jenis kesatuan, anda perlu mengasingkan nama beberapa jenis dengan bar menegak (|), contohnya:

function foo(int|float|string $param) {}
Salin selepas log masuk

Ini mentakrifkan parameter $param, yang boleh menjadi salah satu jenis integer, titik terapung atau rentetan.

Biasanya, kita juga boleh menggunakan kata kunci nol untuk menentukan bahawa pembolehubah jenis kesatuan boleh mempunyai nilai nol:

function bar(string|null $param) {}
Salin selepas log masuk

Ini bermakna $param boleh mempunyai dua jenis berbeza: rentetan atau null.

Walau bagaimanapun, jenis kesatuan tidak menyokong definisi rekursif. Dalam erti kata lain, kita tidak boleh menggunakan sintaks berikut:

function baz(int|float|array $param, string|null|float $other) {}
Salin selepas log masuk
  1. Menggunakan jenis kesatuan

Sangat mudah untuk menggunakan jenis kesatuan dalam fungsi, parameter kaedah dan jenis pulangan, sifat, dsb. Contohnya:

// 函数参数中使用union类型:
function test(int|float $param) {}

// 方法返回类型中使用union类型:
class Foo {
    public function bar(): string|array {}
}

// 属性类型中使用union类型:
class Baz {
    public int|float $foo;
}
Salin selepas log masuk

Walau bagaimanapun, menggunakan jenis kesatuan dalam pengisytiharan berubah agak terhad, kerana ia hanya boleh diberikan kepada nilai salah satu jenisnya.

// 变量声明中使用union类型:
$test = 1|2.0|"three";
$test = "four";  // 可以赋值为其中一个类型的值
$test = false;  // 不是其中任何一个类型,将会抛出TypeError
Salin selepas log masuk

Kita boleh menggunakan is_int(), is_float(), is_string() dan fungsi lain untuk menyemak pembolehubah jenis kesatuan.

  1. Nota

Walaupun jenis kesatuan boleh mengurangkan penyelenggaraan dan kod pendua dalam pelbagai senario, ia juga mempunyai beberapa perkara yang perlu diberi perhatian.

Pertama sekali, kita perlu menggunakan jenis kesatuan dengan berhati-hati, kerana disebabkan fleksibilitinya, ia mungkin meningkatkan kerumitan kod. Jika anda mempunyai terlalu banyak jenis kesatuan dalam kod anda, ini mungkin bermakna kod anda mungkin mempunyai masalah reka bentuk, terutamanya dengan parameter dan jenis fungsi dan kaedah yang dikembalikan.

Kedua, walaupun jenis kesatuan ialah perubahan baharu dalam PHP8.0, ia tidak disokong oleh semua versi. Jika anda ingin menggunakan jenis kesatuan, anda perlu memastikan bahawa kod anda menjalankan PHP8.0 dan ke atas, jika tidak, kod tidak akan berjalan dengan betul.

Akhir sekali, kita perlu memberi perhatian kepada sintaks penggunaan jenis kesatuan. Sintaks yang betul adalah untuk memisahkan berbilang nama jenis dengan paip (|), seperti int|float|string, bukan int|float|string atau int|float|string.

  1. Ringkasan

Dalam PHP8.0, jenis kesatuan baharu menyediakan kod kami penyelesaian yang lebih fleksibel dan jelas apabila menangani pertimbangan jenis kompleks memainkan peranan yang besar. Walaupun ia menepati konsep polimorfisme, kita juga mesti memberi perhatian kepada penggunaannya untuk mengelakkan penggunaan berlebihan dan kesan negatif terhadap kod tersebut. Jika anda sedang mempertimbangkan untuk menaik taraf kepada PHP8.0, anda juga boleh cuba menggunakan jenis kesatuan, mungkin ia akan menjadi pembantu yang baik untuk anda.

Atas ialah kandungan terperinci Jenis kesatuan dalam PHP8.0. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Feb 07, 2025 am 11:57 AM

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Program PHP untuk mengira vokal dalam rentetan Program PHP untuk mengira vokal dalam rentetan Feb 07, 2025 pm 12:12 PM

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Kunci Pengekodan: Membuka Kunci Kuasa Python untuk Pemula Kunci Pengekodan: Membuka Kunci Kuasa Python untuk Pemula Oct 11, 2024 pm 12:17 PM

Python ialah bahasa pengenalan pengaturcaraan yang ideal untuk pemula melalui kemudahan pembelajaran dan ciri yang berkuasa. Asasnya termasuk: Pembolehubah: digunakan untuk menyimpan data (nombor, rentetan, senarai, dll.). Jenis data: Mentakrifkan jenis data dalam pembolehubah (integer, titik terapung, dll.). Operator: digunakan untuk operasi matematik dan perbandingan. Aliran kawalan: Kawal aliran pelaksanaan kod (penyataan bersyarat, gelung).

Java Made Simple: Panduan Pemula untuk Kuasa Pengaturcaraan Java Made Simple: Panduan Pemula untuk Kuasa Pengaturcaraan Oct 11, 2024 pm 06:30 PM

Java Made Simple: Panduan Permulaan untuk Kuasa Pengaturcaraan Pengenalan Java ialah bahasa pengaturcaraan berkuasa yang digunakan dalam segala-galanya daripada aplikasi mudah alih hingga sistem peringkat perusahaan. Untuk pemula, sintaks Java adalah ringkas dan mudah difahami, menjadikannya pilihan ideal untuk pembelajaran pengaturcaraan. Sintaks Asas Java menggunakan paradigma pengaturcaraan berorientasikan objek berasaskan kelas. Kelas ialah templat yang menyusun data dan tingkah laku yang berkaitan bersama-sama. Berikut ialah contoh kelas Java yang mudah: publicclassPerson{privateStringname;privateintage;

Cipta Masa Depan: Pengaturcaraan Java untuk Pemula Mutlak Cipta Masa Depan: Pengaturcaraan Java untuk Pemula Mutlak Oct 13, 2024 pm 01:32 PM

Java ialah bahasa pengaturcaraan popular yang boleh dipelajari oleh pembangun pemula dan berpengalaman. Tutorial ini bermula dengan konsep asas dan diteruskan melalui topik lanjutan. Selepas memasang Kit Pembangunan Java, anda boleh berlatih pengaturcaraan dengan mencipta program "Hello, World!" Selepas anda memahami kod, gunakan gesaan arahan untuk menyusun dan menjalankan program, dan "Hello, World!" Pembelajaran Java memulakan perjalanan pengaturcaraan anda, dan apabila penguasaan anda semakin mendalam, anda boleh mencipta aplikasi yang lebih kompleks.

Penyelesaian Masalah dengan Python: Buka Kunci Penyelesaian Berkuasa sebagai Pengekod Pemula Penyelesaian Masalah dengan Python: Buka Kunci Penyelesaian Berkuasa sebagai Pengekod Pemula Oct 11, 2024 pm 08:58 PM

Pythonmemperkasakan pemula dalam menyelesaikan masalah.Sintaksnya yang mesra pengguna, perpustakaan luas, dan ciri-ciri seperti pembolehubah, pernyataan bersyarat, dan pembangunan kod yang cekap boleh dilonggarkan. Daripada mengurus data untuk mengawal aliran program dan melaksanakan tugasan berulang, Pythonprovid

See all articles