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 では、define の代わりに const を使用して名前空間の恩恵を受けることができます。const キーワードを使用するようにこの関数を変更する方法はありますか?
また、コードをきれいに見せるために 5.3 のみを使用しています。パフォーマンスへの影響が必要な場合 (つまり、eval などを使用する場合)、古き良き定義に固執します。
私はすでにこの質問を見てきました:PHPと列挙ですが、探しているものが見つかりませんでした。