根据其值替换一个 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
我设置了以下变量:
$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