无论如何,php枚举有不同的级别吗? [复制]

Posted

技术标签:

【中文标题】无论如何,php枚举有不同的级别吗? [复制]【英文标题】:Is there anyway to have various levels for php enumerations? [duplicate] 【发布时间】:2014-09-20 23:19:27 【问题描述】:

有没有人知道 php AbstractEnumeration 是否有办法在它下面做另一个级别?

很喜欢……

const a = 'a';
const b = 'b';

但我有一个可选参数:

const a = 'a' => '=123'

我知道这可能最终会变成一个哈希表,但我只是想知道我可以用 php 枚举做什么有趣的事情。

【问题讨论】:

【参考方案1】:

PHP 不支持原生枚举。

你做这样的事情:

abstract class ErrorCode

   const NOT_FOUND = 404;
   const OK = 200;
   // etc.

$error = ErrorCode::NOT_FOUND;

这在 PHP 中不起作用:

const a = 'a' => '=123'

【讨论】:

我一直在使用这个:github.com/eloquent/enumeration 但我喜欢后一个想法。谢谢!我会看看它是否有效。编辑:php 不允许常量值中的表达式【参考方案2】:

您可以将对象序列化为数组:

# serialize data into an array
define ("a", serialize (array ("a" => 123)));

# use it wherever you want
$a = unserialize (a);

【讨论】:

以上是关于无论如何,php枚举有不同的级别吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP 需要不同的目录级别

如何根据在模型级别定义的枚举字段在 Django Modelform 中呈现单选按钮选择?

Logcat:日志级别之间的区别? [复制]

如何获得扬声器音量级别? [复制]

如何在 dll 级别读取 app.config。? [复制]

在SQL数据访问中如何对不同级别设置访问权限