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

1つの可能性は、配列をマップとして使用することです。

$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 に答える