设置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;
}
您的想法可行,但在我的情况下,我无法控制传递到代码中的初始变量名。您的想法可行,但在我的情况下,我无法控制传递到代码中的初始变量名。