在某些情况下,我遇到过这种情况,我只需要询问是否有更好的东西。我有一个值可以通过派克分配给它的数字。数字意味着什么,所以将其输出给用户。例如,我需要将1更改为对用户来说意味着什么的东西。这是一个代码示例:
switch($data['priority']) {
case 1:
$priority = 'Low';
break;
case 2:
$priority = 'Medium';
break;
case 3:
$priority = 'High';
break;
default:
$priority = 'None';
break;
}
有没有办法用较少的代码将值分配给优先级?我知道在JavaScript中你可以做多个三元运算符(var data = type == 1 ? 'Good' : type == 2 ? 'Bad' : type == 3 ? 'Unknown' : '';
),但PHP不允许这样做。我知道你也可以做多个if,否则if,else if,else语句,但这看起来好像是很多额外的代码。有没有更好的方法来做我要问的事情?
答案 0 :(得分:6)
一种可能性是使用数组作为map:
$map = array(1 => 'Low', 2 => 'Mid', ...);
$prioName = isset($map[$prio]) ? $map[$prio] : 'None';
答案 1 :(得分:2)
尝试一个数组映射:
$priorities = array('None', 'Low', 'Medium', 'High');
// you can use an easy "if"
if ($data['priority'] < 1 || $data['priority'] > 3)
$data['priority'] = 0;
// or you can use a ternary assignment:
$data['priority'] = $data['priority'] < 1 || $data['priority'] > 3 ? 0 : $data['priority'];
$priority = $priorities[$data['priority']];