PHP 5.3之前,我用的是下面的自制函數來創建枚舉:枚舉在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關鍵字?
此外,我只使用5.3使我的代碼看起來更乾淨,如果必須有性能影響(即使用eval或類似的東西),我會堅持使用舊的定義。
我已經看過這個問題:PHP and Enumerations但我沒有找到我要找的東西。
如果你downvote,請至少可以解釋爲什麼。這是沒有建設性和愚蠢的。 – Virus721
你能解釋一下你的意思嗎?我可以修改這個函數來使用const關鍵字嗎?_,因爲這是你問的唯一問題。 – eisberg
我不明白這個問題中有什麼不明確的地方。讓我以不同的方式提問:我可以使用const關鍵字而不是此函數中的define函數創建僅存在於調用enum函數的名稱空間中的常量嗎? – Virus721