标签为“枚举类型”的页面如下
文章
PHP 枚举类型
问题 PHP没有原声的枚举,从Java转过来的就懵逼了。那么怎么才能在PHP中使用枚举,而且又能被IDE识别呢。Constants(define)是一种办法,但是他是全局的,有命名空间冲突的问题。虽然数组没有命名空间问题,但是数组定义常量太模糊,而且运行时是可以被覆盖的,而且很少有IDE可以自动补全。
解决方案一 1.简单的用法 1 2 3 4 5 6 7 8 abstract class DaysOfWeek { const Sunday = 0; const Monday = 1; // etc. } $today = DaysOfWeek::Sunday; 以上的方式很多情况下需要验证常量的值,以下的方法可以应用大部分场景
2.完善的用法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 abstract class BasicEnum { private static $constCacheArray = NULL; private static function getConstants() { if (self::$constCacheArray == NULL) { self::$constCacheArray = []; } $calledClass = get_called_class(); if (!