根据其值替换一个 PHP 变量名

Substitute a PHP variable name according to its value

我设置了以下变量:

$type = 'cd';
$type_cd = 'Compact Disc';

$type 的值存储在 MySQL 数据库中,可以是任何值。

但是在代码的某些特定位置我需要 echo $type_cd; 而不是 echo $type; 以防 $type = 'cd';.

我想使用尽可能少的代码避免像 if($type = 'cd') {echo $type_cd;} 这样的结构。

是否可以使用 PHP 创建类似 $newvar = $ + prefix + oldvar_value 的内容?

使用数组而不是多个变量。您可以在某些 class 或某些配置中定义它们,以便您可以在任何地方重复使用它们:

$availableTypes = [
    'cd'  => 'Compact Disc',
    'foo' => 'bar', 
    ...
];

那么当你从数据库中获取类型时,你需要做的就是:

$type = 'cd'; // Fetched from your database

echo $availableTypes[$type];

是的,您可以:

$a = 'ab';
$ab = 2
echo $$a; // 2

以你的例子为例:

$type = 'cd';
$type_cd = 'Compact Disc';

// a variable that holds the type
$temp_type = $is_cd ? 'type' : 'type_cd';

echo $$temp_type;

这有帮助吗?

$type = 'cd';
$$type = 'Compact Disc';
echo $cd;

会回显“光盘”。 我不认为这是最佳实践...... 您可以找到文档 here