在 PHP 5.3 之前,我使用以下自制函数来创建枚举:
function enum()
{
for($enums = func_get_args(), $enum = reset($enums), $i = 1; $enum; $enum = next($enums), ++$i)
{
if(defined($enum)) throw new Exception($enum.' is already defined.');
else define($enum, $i);
}
} // enum()
进而 :
enum('CONST0', 'CONST1', 'CONST2', ...);
使用 php 5.3,我可以使用 const 而不是 define 来从命名空间中受益。有没有办法可以修改此函数以使其使用 const 关键字?
此外,我只使用 5.3 来使我的代码看起来更干净,如果必须对性能产生影响(即使用 eval 或类似的东西),我会坚持使用旧定义。
我已经看过这个问题:PHP and Enumerations但我没有找到我要找的东西。