2013-07-31 49 views
0

在PHP中使用枚舉是否有其他選擇?我只問,因爲在C#中我有方法返回一個emum,但在PHP中沒有類似的存在。這裏有一些虛擬方法可能的返回類型:PHP中的枚舉的替代方案

function login() 
{ 
    // logged in 
    // log in failed verify account 
    // log in failed account suspended 
    // log in failed account banned 
} 

在PHP中做這種事情的最佳方式是什麼?

+1

最近我可以建議你會是常數。 您可以在一個班級或全球範圍內定義它們 – Moylin

+0

XY問題?忽略'枚舉'你想做什麼? – 2013-07-31 23:12:50

+0

可能的重複:http://stackoverflow.com/questions/254514/php-and-enums?rq=1 –

回答

2

您可以使用類:

class LoginStatus 
{ 
    const FailVerifyAccount = 0; 
    const FailAccountSuspended = 1; 
    const FailAccoutBanned = 2; 
} 

// how to use 
$status = LoginStatus::FailVerifyAccount; 

if ($status == LoginStatus::FailVerifyAccount) echo "Verify account"; 

或常量通過使用define:

define("LOGIN_STATUS_VERIFY_ACCOUNT", 0); 
define("LOGIN_STATUS_ACCOUNT_SUSPENDED", 1); 
define("LOGIN_STATUS_ACCOUNT_BANNED", 2); 

// how to use 
$status = LOGIN_STATUS_VERIFY_ACCOUNT; 

if ($status == LOGIN_STATUS_VERIFY_ACCOUNT) echo "Verify account";