1

在某些情况下,我遇到过这种情况,我只需要询问是否有更好的东西。我有一个值,可以通过分配了一个数字的派克来。数字意味着什么,所以要输出给用户。例如,我需要将 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、else if、else if、else 语句,但这似乎是很多额外的代码。有没有更好的方法来做我要求的事情?

4

2 回答 2

6

一种可能性是使用数组作为映射:

$map = array(1 => 'Low', 2 => 'Mid', ...);
$prioName = isset($map[$prio]) ? $map[$prio] : 'None';
于 2012-08-22T20:02:40.073 回答
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']];
于 2012-08-22T20:03:53.880 回答