请允许有人将以下内容转换为三元吗?
if ($idd == 1521) {
return "Home<br /><img src=\"images/b-value.gif\" /><br />Best for Value";
}
else if ($idd == 1595) {
return "Home<br /><img src=\"images/b-dload.gif\"/><br />Best for Downloads";
}
else if ($idd == 1522) {
return "Business<br /><img src=\"images/b-value.gif\" /><br />Best for Value";
}
else if ($idd == 1596) {
return "Business<br /><img src=\"images/b-dload.gif\"/><br />Best for Downloads";
}
else if ($idd == 1523) {
return "Voice Product<br /><img src=\"images/vstream200.gif\" /><br />4 Guaranteed Calls";
}
else if ($idd == 1524) {
return "Voice Product<br /><img src=\"images/vstream350.gif\" /><br />7 Guaranteed Calls";
}
else if ($idd == 1525) {
return "Voice Product<br /><img src=\"images/vstream700.gif\"/><br />14 Guaranteed Calls";
}
else
return "";
感谢。
答案 0 :(得分:26)
三元运算符似乎不适合您的情况。 为什么不使用简单的映射?
$map = array(
1521 => array('Home', 'b-value.gif', 'Best for Value'),
1595 => array('Home', 'b-dload.gif', 'Best for Downloads'),
1522 => array('Business', 'b-value.gif', 'Best for Value'),
// and so on
);
if (array_key_exists($idd, $map)) {
$item = $map[$idd];
echo "{$item[0]} <br/> <img src=\"{$item[1]}\"/> <br/> {$item[2]}";
}
或者,您可以从文件或数据库中提取地图。
答案 1 :(得分:11)
由于没有其他人愿意按你的要求做,所以这是三元:
return ($idd == 1521
? "Home<br /><img src=\"images/b-value.gif\" /><br />Best for Value"
: ($idd == 1595
? "Home<br /><img src=\"images/b-dload.gif\"/><br />Best for Downloads"
: ($idd == 1522
? "Business<br /><img src=\"images/b-value.gif\" /><br />Best for Value"
: ($idd == 1596
? "Business<br /><img src=\"images/b-dload.gif\"/><br />Best for Downloads"
: ($idd == 1523
? "Voice Product<br /><img src=\"images/vstream200.gif\" /><br />4 Guaranteed Calls"
: ($idd == 1524
? "Voice Product<br /><img src=\"images/vstream350.gif\" /><br />7 Guaranteed Calls"
: ($idd == 1525
? "Voice Product<br /><img src=\"images/vstream700.gif\"/><br />14 Guaranteed Calls"
: ""
)
)
)
)
)
)
);
但是,和其他人一样,我建议你使用开关或数组映射。
答案 2 :(得分:5)
为什么不使用开关?
switch ($idd) {
case 1521 : return "Home<br /><img src=\"images/b-value.gif\" /><br />Best for Value";
case 1595 : return "Home<br /><img src=\"images/b-dload.gif\"/><br />Best for Downloads";
default: return "";
}
答案 3 :(得分:2)
我喜欢把这样的东西放到数组中
$data = array(
"_1521" => "Home<br /><img src=\"images/b-value.gif\" /><br />Best for Value",
"_1595" => "Home<br /><img src=\"images/b-dload.gif\"/><br />Best for Downloads",
"_1522" => "Business<br /><img src=\"images/b-value.gif\" /><br />Best for Value"
);
然后你可以像这样回报:
return (array_key_exists("_$idd", $data) ? return $data[$idd] : "");
假设整个事情都在这样的函数中
function getIddString($idd) {
$data = array( /*stuff from above*/);
return (/* stuff from above */);
}
然后,您可以随时随地调用它来获取其中一个值。
答案 4 :(得分:2)
这些数字看起来像数据库ID 。如果是这种情况,更易于维护的解决方案是修改数据库模式以存储这些字符串,然后只输出数据库中的值,而不是尝试根据ID进行切换。