无论如何,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枚举有不同的级别吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何根据在模型级别定义的枚举字段在 Django Modelform 中呈现单选按钮选择?