PHP 类常量数组转换

Posted

技术标签:

【中文标题】PHP 类常量数组转换【英文标题】:PHP Class Constants Array Cast 【发布时间】:2012-04-07 09:53:45 【问题描述】:

为了在 php 中模拟枚举,我喜欢使用类常量。

例如

class FRUIT

    const apple = 1;
    const orange = 2;
    const lemon = 3;
    const pear = 4;
;

我有一个案例,我想将此类转换为数组以填充选择列表。但是,由于类常量的行为静态转换不起作用,例如(array)(new FRUIT()); 也没有 get_object_vars() 方法。

解决这个问题的最佳方法是什么?我是否需要创建一个内部函数来迭代常量并返回一个数组?

【问题讨论】:

【参考方案1】:

我需要创建一个内部函数来迭代常量并返回一个数组吗?

不!您可以使用反射来做到这一点:

$r = new ReflectionClass('FRUIT');
$constants = $r->getConstants();

更多信息here

【讨论】:

以上是关于PHP 类常量数组转换的主要内容,如果未能解决你的问题,请参考以下文章

php如何定义一个常量数组

php 类中定义全局变量|php类定义变量|php类定义常量

精进不休 php - 数据类型变量常量函数类接口特性

php命名大小问题

将 PHP 数组转换为类变量

PHP 在一行中将关联数组转换为对象(类)