在PHP中,const语句一般用于在类中定义常量,可以用来模拟枚举,如下面的代码。
class Sex
{
const MALE = 1;
const MAN = 1;
const BOY = 1;
const FEMALE = 2;
const WOMAN = 2;
const GIRL = 2;
const UNKNOW = 0;
}
sex = Sex::GIRL;
var_dump(sex);
代码中,我们定义了Sex类,由于它的作用是定义关于性别的枚举,所以,我们并没有使用大写字母C开头;在ESex类中,定义了7个常量成员,但实际上只有三个值,即:1表示男性,2表示女性,而0值则表示一个异常值。
在软件开中,总是给枚举定义一个异常值是一个编程习惯,这是为可能的扩展或错误处理提前做一些准备工作。
随后,我们定义了变量$sex,并设置为Sex::GIRL值,然后,我们通过var_dump()函数显示它的信息,我们会发现此值为int(2)。当我们为变量设置了枚举类中不存在的成员时,会产生错误。
从以上的表现中,我们可以看到枚举类的一些特点:
- 枚举成员可以有相同的值,如我们定义三个1值的成员和三个2值的成员。
- 只能使用枚举中已定义的成员,否则会产生错误。
- 实际上,除了整数,枚举成员也可以设置为其它类型,如浮点数、字符串等。
对于项目中有着固定范围的数据,我们就可以使用枚举类来设置和获取它们的值,这样就可以有效防止很多可能的错误,如输入错误、指定了超出范围的值等等。