php - 我可以在 PHP 类上定义 CONST 吗?

标签 php constants class-constants

我在一些类上定义了几个 CONST,我想得到它们的列表。例如:

class Profile {
    const LABEL_FIRST_NAME = "First Name";
    const LABEL_LAST_NAME = "Last Name";
    const LABEL_COMPANY_NAME = "Company";
}

有什么方法可以获取在 Profile 类上定义的 CONST 的列表?据我所知,最接近的选项 (get_defined_constants()) 无法解决问题。

我真正需要的是一个常量名称列表——像这样:

array('LABEL_FIRST_NAME',
    'LABEL_LAST_NAME',
    'LABEL_COMPANY_NAME')

或者:

array('Profile::LABEL_FIRST_NAME', 
    'Profile::LABEL_LAST_NAME',
    'Profile::LABEL_COMPANY_NAME')

甚至:

array('Profile::LABEL_FIRST_NAME'=>'First Name', 
    'Profile::LABEL_LAST_NAME'=>'Last Name',
    'Profile::LABEL_COMPANY_NAME'=>'Company')

最佳答案

您可以使用 Reflection为了这。请注意,如果您经常这样做,您可能需要考虑缓存结果。

<?php
class Profile {
    const LABEL_FIRST_NAME = "First Name";
    const LABEL_LAST_NAME = "Last Name";
    const LABEL_COMPANY_NAME = "Company";
}


$refl = new ReflectionClass('Profile');
print_r($refl->getConstants());

输出:

Array
(
    'LABEL_FIRST_NAME' => 'First Name',
    'LABEL_LAST_NAME' => 'Last Name',
    'LABEL_COMPANY_NAME' => 'Company'
)

关于php - 我可以在 PHP 类上定义 CONST 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3875779/

相关文章:

c - 是否可以真正强制变量变为常量以允许我动态声明数组?

c++ - 在 const 方法中更改对象状态

类 [DateTime ('@-1' )] 的 PHP 对象实例作为另一个类中的常量

php - 创建一个类的所有常量的数组?

php - 在 PHP 中动态访问类常量

PHP:只有 $_FILES 数组的前 20 个索引从 HTML 表单传递到上传脚本

php - 获取消息 ID 作为响应 - SendGrid API v3

php - mysql select查询问题where id in ()

php - 无法显示数组结果

PHP 字符串常量过度使用?