如何根据 php 中的键从常量文件数组中获取值?

How to get value from constant file array based on key in php?

我有一个文件,它是这个文件中的常量我有一个数组我想将该数组键调用到另一个文件中,你能帮我解决这个问题吗?

constants.php

<?php


namespace App\Ship\Constants;


class Constants
{
    const USER_DEPT = 'MECH';
    const STAFF_DEPT = 'Batch_1';
    const USER_SECTION = 1;
    const STAFF_SECTION =50;

    
    const USER_TYPES = [
            self::USER_DEPT => self::USER_SECTION,
            self::STAFF_DEPT => self::STAFF_SECTION
    ];
}

Controller.php

//$field is either USER or STAFF based on request it's coming
public function check($field){ 
            constants::USER_TYPES[$field.'_DEPT'];
}

错误 未定义索引 USER_DEPT

当您将数组键声明为变量时,实际键将由该变量的值分配。在你的例子中 USER_TYPES 数组包含这些数据:

Array
(
    [MECH] => 1
    [Batch_1] => 50
)

Thats why you getting undefined index error

如果想像 USER_DEPT 那样访问数组索引,那么您必须像这样分配常量:

const USER_DEPT = 'USER_DEPT';
const STAFF_DEPT = 'STAFF_DEPT';

或像这样更改数组键:

const USER_TYPES = [
    'USER_DEPT' => self::USER_SECTION,
    'STAFF_DEPT' => self::STAFF_SECTION
];