Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Penghitungan dalam PHP Berevolusi, dan Apakah Penyelesaian yang Wujud Sebelum Sokongan Asli?

Bagaimanakah Penghitungan dalam PHP Berevolusi, dan Apakah Penyelesaian yang Wujud Sebelum Sokongan Asli?

Susan Sarandon
Lepaskan: 2024-12-13 07:39:10
asal
493 orang telah melayarinya

How Have Enumerations in PHP Evolved, and What Workarounds Existed Before Native Support?

Enumerasi pada PHP

PHP asli kekurangan penghitungan sehingga versi 8.1, menjadikannya sukar untuk menyimpan nilai yang dipratentukan. Penyelesaian yang popular ialah menggunakan pemalar, tetapi mereka mengalami masalah perlanggaran ruang nama dan skop global. Tatasusunan, walaupun kebal terhadap perlanggaran ruang nama, tidak mempunyai keselamatan jenis dan terdedah kepada tiruan masa jalan.

Penghitungan Asli dalam PHP 8.1

Sejak PHP 8.1, penghitungan asli telah diperkenalkan . Mereka menyediakan sintaks yang bersih untuk menentukan enum:

enum DaysOfWeek: int
{
    case Sunday = 0;
    case Monday = 1;
    // ...
}
Salin selepas log masuk

Enum boleh digunakan untuk pemalar selamat jenis dan pengesahan nilai:

$today = DaysOfWeek::Sunday;
if ($today === DaysOfWeek::Monday) {
    // ...
}
Salin selepas log masuk

Penyelesaian untuk PHP 8.0 dan Terdahulu

Sebelum PHP 8.1, penyelesaian yang popular disertakan:

  • Kelas Enum Abstrak: Takrifkan kelas abstrak dengan const yang mewakili nilai enum:
abstract class DaysOfWeek
{
    const Sunday = 0;
    const Monday = 1;
    // ...
}
Salin selepas log masuk
  • Dipertingkat Kelas Enum: Panjangkan BasicEnum untuk memberikan pengesahan kaedah:
abstract class BasicEnum {}

abstract class DaysOfWeek extends BasicEnum
{
    const Sunday = 0;
    const Monday = 1;
    // ...
}
Salin selepas log masuk

Dengan kelas ini, pengesahan nilai menjadi mungkin:

if (DaysOfWeek::isValidName('Monday')) {
    // ...
}
Salin selepas log masuk

Pilihan Lain

  • SplEnum: Kelas ini boleh digunakan untuk mencipta kejadian enum, tetapi ia tidak begitu meluas diterima sebagai pendekatan di atas.
  • Perpustakaan Luaran: Sesetengah perpustakaan luaran juga menawarkan sokongan enum.

Kesimpulan

Dengan pengenalan penghitungan asli dalam PHP 8.1, bekerja dengan nilai yang telah ditetapkan menjadi lebih mudah dan lebih teguh. Walau bagaimanapun, walaupun untuk versi PHP yang lebih lama, terdapat penyelesaian berkesan yang tersedia untuk menyediakan kefungsian seperti enum.

Atas ialah kandungan terperinci Bagaimanakah Penghitungan dalam PHP Berevolusi, dan Apakah Penyelesaian yang Wujud Sebelum Sokongan Asli?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan