Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Melaksanakan Penghitungan dalam PHP, Mempertimbangkan Sokongan Versi Berbeza?
Enumerations on PHP: Beyond Constants and Arrays
Enumerations, atau ringkasnya enum, menyediakan cara yang mudah untuk mentakrifkan set nilai yang dipratentukan yang boleh digunakan secara konsisten merentas pangkalan kod. Walaupun PHP tidak menyokong enum secara asli, terdapat beberapa penyelesaian yang boleh menyediakan kefungsian yang serupa.
PHP 8.1 dan Melebihi: Native Enumerations
Sehingga PHP 8.1, enumerations kini disokong sepenuhnya sebagai ciri bahasa terbina dalam. Penghitungan boleh ditakrifkan menggunakan kata kunci enum dan membenarkan kedua-dua penetapan nilai malar dan penggunaan mudah bagi perwakilan rentetannya.
enum DaysOfWeek: int { case Sunday = 0; case Monday = 1; // etc. } $today = DaysOfWeek::Sunday; var_dump($today->value); // 0 var_dump($today->name); // "Sunday"
PHP 8.0 dan Terdahulu: Pelaksanaan Tersuai
Sebelum PHP 8.1, pembangun terpaksa bergantung pada pelaksanaan tersuai untuk mencapai gelagat seperti enum. Satu pendekatan biasa melibatkan penentuan pemalar dalam kelas abstrak. Walaupun ini menyediakan nilai yang dinamakan, ia tidak menawarkan jenis keselamatan atau pengesahan.
abstract class DaysOfWeek { const Sunday = 0; const Monday = 1; // etc. } $today = DaysOfWeek::Sunday;
Pelaksanaan Tersuai Dipertingkat dengan Refleksi
Untuk menangani batasan kelas abstrak pendekatan, pelaksanaan yang dipertingkatkan menggunakan refleksi boleh memberikan pengesahan yang lebih mantap dan pengendalian ralat:
abstract class BasicEnum { // ... (reflection helper methods) public static function isValidName($name, $strict = false) { // ... (validation logic) } public static function isValidValue($value, $strict = true) { // ... (validation logic) } } abstract class DaysOfWeek extends BasicEnum { const Sunday = 0; const Monday = 1; // etc. } DaysOfWeek::isValidName('Humpday'); // false DaysOfWeek::isValidName('Monday'); // true DaysOfWeek::isValidName('monday', $strict = true); // false DaysOfWeek::isValidValue(0); // true DaysOfWeek::isValidValue(7); // false
Pelaksanaan ini menyediakan rangka kerja yang fleksibel dan boleh diperluaskan untuk mencipta enum tersuai dengan keselamatan dan pengesahan jenis yang dipertingkatkan. Sama ada bergantung pada enum asli dalam PHP 8.1 atau melaksanakan penyelesaian tersuai untuk versi terdahulu, pembangun mempunyai beberapa pilihan untuk memanfaatkan gelagat seperti enum dalam PHP.
Atas ialah kandungan terperinci Bagaimanakah Saya Melaksanakan Penghitungan dalam PHP, Mempertimbangkan Sokongan Versi Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!