gpt4 book ai didi

php - 将常量数组转换为常量字符串

转载 作者:可可西里 更新时间:2023-11-01 00:38:59 26 4
gpt4 key购买 nike

我有这段代码:

const TYPE_A = 'a';
const TYPE_B = 'b';
const TYPE_C = 'c';

const TYPE_ARRAY = [
TYPE_A,
TYPE_B,
TYPE_C,
];

我使用 TYPE_ARRAY 通过使用 in_array() 检查类型是否有效。但我还需要做一个正则表达式检查,但我不能直接使用这个数组。我需要一个形式为“a|b|c”的字符串,相当于:

implode('|', TYPE_ARRAY);

但不是这样做:

const TYPE_REGEX_STR = "a|b|c";

我想知道是否可以使用正则表达式将常量 TYPE_ARRAY 自动转换为常量。所以像这样:

const TYPE_REGEX_STR = implode('|', TYPE_ARRAY);

我知道最后一个例子是不可能的,但是还有另一种方法吗?

这可能看起来很愚蠢,但是当您有一个包含许多可能类型的数组时,最好基于 const TYPE_ARRAY 创建 const TYPE_REGEX_STR 而不是单独定义它。这样,添加新类型会更容易:只需将其添加到数组中,然后自动生成正则表达式字符串。

顺便说一句,我需要 TYPE_REGEX_STR 作为常量,因为 Symfony 可以在路由要求中使用常量,但不能使用静态函数。

最佳答案

你可以使用 define

<?php

const TYPE_A = 'a';
const TYPE_B = 'b';
const TYPE_C = 'c';

const TYPE_ARRAY = [
TYPE_A,
TYPE_B,
TYPE_C,
];

define ( 'TYPE_REGEX_STR' , implode('|', TYPE_ARRAY) );

echo TYPE_REGEX_STR;

关于php - 将常量数组转换为常量字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56361556/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com