鉴于下面的数组,我可以为交换机执行此操作(在交换机内使用变量$ cost)吗?
或者切换($需要一个不同的变量)
$cost=array(chocoru =>1, oeenergy =>0.35, lemondew =>0.55, chcmyst =>0.25, drsalty =>0.75);
请注意,开关内的$ cost变量与$ cost associative array相同。
switch($cost)
{
case 1:
echo "You chose lemondew <br />";
echo "the price is".$cost["lemondew"]'<br>';
}
答案 0 :(得分:1)
不,你必须用循环迭代数组。
foreach($cost as $product => $price)
{
echo "You chose " . $product . "<br />";
echo "the price is" . $price . '<br>';
}
答案 1 :(得分:1)
您有一个名为$cost
的变量,它是一个将产品名称映射到其价格的关联数组。您可以将产品名称用作数组索引,不需要任何其他变量或switch语句:
echo "You chose $product <br />n";
echo "the price is " . $cost[$product] . "<br />n";
答案 2 :(得分:0)
它无效。切换需求中的变量必须等于要执行的相关代码的任何大小写值。
答案 3 :(得分:0)
switch
语句很像一组if
。例如:
switch ($var) {
case 1:
$other_var = 6;
break;
case 2:
$other_var = 3;
break;
case 3:
$other_var = 2;
break;
default:
$other_var = 0;
break;
}
在逻辑上等同于:
if ($var == 1) {
$other_var = 6;
}
else if ($var == 2) {
$other_var = 3;
}
else if ($var == 3) {
$other_var = 2;
}
else {
$other_var = 0;
}
您希望根据您尝试的操作使用不同的构造。
答案 4 :(得分:0)
不,你必须使用精确的变量,即在评估中只给出一个结果的变量,它可能是$ cost ['chocoru']。但在这种情况下它没有任何意义,所以最好的方法是,我想,按名称切换它,如:
echo "You chose $name <br />";
echo "the price is".$cost[$name].'<br>';