Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
设置PHP嵌套变量_Php - Fatal编程技术网

设置PHP嵌套变量

设置PHP嵌套变量,php,Php,我有以下有效的代码: $apple_color = "red"; $pear_color = "green"; $banana_color = "yellow"; $grape_color = "purple"; foreach(array("apple","pear","banana","grape") as $idx=>$fname) { $var = "${fname}_color"; echo "$var = ${$var}<br>".PHP_EOL;

我有以下有效的代码:

$apple_color = "red";
$pear_color = "green";
$banana_color = "yellow";
$grape_color = "purple";

foreach(array("apple","pear","banana","grape") as $idx=>$fname) {
    $var = "${fname}_color";
    echo "$var = ${$var}<br>".PHP_EOL;
}
$apple\u color=“red”;
$pear_color=“绿色”;
$banana_color=“黄色”;
$grape_color=“紫色”;
foreach(数组(“苹果”、“梨”、“香蕉”、“葡萄”)为$idx=>$fname){
$var=“${fname}\u color”;
echo“$var=${$var}
”.PHP\u EOL; }
但是,我不知道如何通过将$var变量删除为以下内容来缩短代码:

foreach(array("apple","pear","banana","grape") as $idx=>$fname) {
    echo "${fname}_color = ${${fname}_color}<br>".PHP_EOL;
}
foreach(数组(“苹果”、“梨”、“香蕉”、“葡萄”)为$idx=>$fname){
echo“${fname}\u color=${${fname}\u color}
”.PHP\u EOL; }
“${${fname}\u color”返回一个PHP错误,该错误表示“语法错误,意外的'\u color'(T\u字符串)”


PHP小提琴:

这个怎么样?使用
${'string'}
构造

foreach(["apple","pear","banana","grape"] as $fname) {
    echo "{$fname}_color = ".${$fname.'_color'}."<br>".PHP_EOL;
}
foreach([“苹果”、“梨”、“香蕉”、“葡萄”]作为$fname){
echo“{$fname}\u color=“.${$fname.''u color'}.”
”.PHP\u EOL; }
这个怎么样?使用
${'string'}
构造

foreach(["apple","pear","banana","grape"] as $fname) {
    echo "{$fname}_color = ".${$fname.'_color'}."<br>".PHP_EOL;
}
foreach([“苹果”、“梨”、“香蕉”、“葡萄”]作为$fname){
echo“{$fname}\u color=“.${$fname.''u color'}.”
”.PHP\u EOL; }
使用字符串格式简化您的生活:

echo sprintf('$%s_color = %s<br>' . PHP_EOL, $fname, ${$fname . '_color'});
echo sprintf(“$%s\u color=%s
”.PHP\u EOL,$fname,${$fname.\u color'});
使用字符串格式简化您的生活:

echo sprintf('$%s_color = %s<br>' . PHP_EOL, $fname, ${$fname . '_color'});
echo sprintf(“$%s\u color=%s
”.PHP\u EOL,$fname,${$fname.\u color'});
不用为每种颜色单独设置变量,而是将颜色存储在按水果名称索引的数组中。这样可以避免使用变量的混乱

$colors = [
    'apple' => 'red',
    'pear' => 'green',
    'banana' => 'yellow',
    'grape' => 'purple'
];

foreach (["apple","pear","banana","grape"] as $fname) {
    echo "{$fname}_color = $colors[$fname]<br>".PHP_EOL;
}
$colors=[
“苹果”=>“红色”,
'梨'=>'绿',
“香蕉”=>“黄色”,
“葡萄”=>“紫色”
];
foreach([“苹果”、“梨”、“香蕉”、“葡萄”]作为$fname){
echo“{$fname}\u color=$colors[$fname]
”.PHP\u EOL; }
不用为每种颜色单独设置变量,而是将颜色存储在按水果名称索引的数组中。这样可以避免使用变量的混乱

$colors = [
    'apple' => 'red',
    'pear' => 'green',
    'banana' => 'yellow',
    'grape' => 'purple'
];

foreach (["apple","pear","banana","grape"] as $fname) {
    echo "{$fname}_color = $colors[$fname]<br>".PHP_EOL;
}
$colors=[
“苹果”=>“红色”,
'梨'=>'绿',
“香蕉”=>“黄色”,
“葡萄”=>“紫色”
];
foreach([“苹果”、“梨”、“香蕉”、“葡萄”]作为$fname){
echo“{$fname}\u color=$colors[$fname]
”.PHP\u EOL; }
您的想法可行,但在我的情况下,我无法控制传递到代码中的初始变量名。您的想法可行,但在我的情况下,我无法控制传递到代码中的初始变量名。