替代PHP中的枚举

时间:2013-07-31 23:10:36

标签: php

在PHP中使用枚举是否有其他选择?我只是问,因为在C#中我有返回emum的方法,但在PHP中没有类似的东西存在。以下是虚构方法中的一些可能的返回类型:

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

在PHP中做这样的事情的最佳方法是什么?

2 个答案:

答案 0 :(得分:3)

您可以使用class:

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";

答案 1 :(得分:0)

我通常使用php位域

Improve this PHP bitfield class for settings/permissions?

虽然该问题与权限有关,但可以轻松更改为使用帐户状态