dongwen2794 2012-03-22 19:17
浏览 41
已采纳

PHP类常量数组转换

To simulate enums in PHP I like to use class constants.

e.g.

class FRUIT
{
    const apple = 1;
    const orange = 2;
    const lemon = 3;
    const pear = 4;
};

I have a case where I'd like cast this class to an array to populate a select list. However because class constants behave statically casting does not work e.g. (array)(new FRUIT()); nor does the get_object_vars() method.

What's the best way to get round this? Do I need to create an internal function to iterate the constants and return an array?

  • 写回答

1条回答 默认 最新

  • duannan3959 2012-03-22 19:19
    关注

    Do I need to create an internal function to iterate the constants and return an array?

    Nope! You can use Reflection to do that:

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

    More info here

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程