別の変数の値に基づいて1つの変数に値を割り当てる、継承されたPHPコードを単純化しようとしています。大まかに言うと、次のようにマッピングされます。
if x < 50, y = 10
else if x >= 50 and < 100, y = 20
else if x >= 100 and < 350, y = 30
else y = 40
このための実際のPHPコードは数行を要し、理想からはほど遠いですが、パターンは十分にあるので、大幅に単純化できると思いますが、完全に単純なパターンでもありません。
これまでの私の最善のアイデアは、可能なy値を配列に割り当ててから、次のようにx値の上限に基づいてその配列のインデックスを呼び出すことです。
$convert = array (10, 20, 30, 30, 30, 30);
$y = ($x <= 350) ? $convert[ceil($x/50)] : 40;
2つの回線、冗長性がはるかに少なく、柔軟性がはるかに高くなります。しかし、それceil
はfloatを返すので、配列のインデックスを生成するためにそれを信頼できるかどうかはわかりません。また、どちらの方法でもオンラインで何も見つかりませんでした。ある種の3.000000000001
値を返す可能性がある場合は、次のように実行しても安全ですか。
$y = ($x <= 350) ? $convert[round(ceil($x/50))] : 40;
それとも、潜在的な落とし穴やより良い解決策がまだありますか?