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
Susan Sarandonasal
2024-12-13 07:39:10440semak imbas

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;
    // ...
}

Enum boleh digunakan untuk pemalar selamat jenis dan pengesahan nilai:

$today = DaysOfWeek::Sunday;
if ($today === DaysOfWeek::Monday) {
    // ...
}

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;
    // ...
}
  • Dipertingkat Kelas Enum: Panjangkan BasicEnum untuk memberikan pengesahan kaedah:
abstract class BasicEnum {}

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

Dengan kelas ini, pengesahan nilai menjadi mungkin:

if (DaysOfWeek::isValidName('Monday')) {
    // ...
}

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!

Kenyataan:
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