rps への応答として、また OP の質問への回答としても。の使用を避け、switch
代わりに単に配列を使用します。row.currency
は常に 1、2、または 3 であるため、対応する値を保持する配列を に簡単に割り当てることができますcurrency
。
var currency = ['£','£','$','€'];//default value is 0
//concat into string like so:
'<td>' + currency[+(row.currency) || 0] + '<inp...';
私がここで行っていることはrow.currency
、数値に強制された場合、 が 3 より大きい値を生成しないことを前提としundefined
ています。これを回避するには、次のようにします。
'<td>' + currency[+(row.currency)] || currency[0] + '<inp...';
そうすれば、上記の式は常にデフォルトで になり'£'
ます。ただし、全体として、あなたのコードは私には奇妙に見えると言わざるを得ません。そして、それは穏やかに言えばです。クライアント側で実行される可能性が高い JavaScript で HTML を生成しているようです。PHP を使用しているときに HTML を生成する (タイトルが PHP を使用していることを示しているように) ことは、現在行っている/行おうとしていることよりもはるかに優れています。
を使用してDBにクエリを実行すると仮定しますPDO
$currency = array(1 => '£', 2 => '$', 3 => '€');
while($row = $stmt->fetch(PDO::FETCH_OBJ))
{
$row->currency = isset($currency[$row->currency]) ? $row->currency : 1;//default 1
echo '<tr><td>'. $currency[$row->currency].'</td>';
}
とはいえ、詳細を提供する必要があるため、あなたの場合の最善のアプローチが何であるかは本当にわかりません。投稿したコードはどこで実行する必要があり、何をする必要がありますか...?