PHP 中枚举的替代方法

Jam*_*ery 2 php

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

function login()
{
    // logged in
    // log in failed verify account
    // log in failed account suspended
    // log in failed account banned 
}
Run Code Online (Sandbox Code Playgroud)

在 PHP 中执行此类操作的最佳方法是什么?

Kam*_*mil 6

您可以使用类:

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

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

if ($status == LoginStatus::FailVerifyAccount) echo "Verify account";
Run Code Online (Sandbox Code Playgroud)

或使用定义常量:

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";
Run Code Online (Sandbox Code Playgroud)