我正在尝试简化一些继承的 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;
两条线,更少的冗余和更多的灵活性。但是我看到它ceil
返回一个浮点数,所以我不确定我是否可以信任它来生成数组的索引,而且我还没有在网上找到任何关于它的信息。如果它可能返回某种3.000000000001
值,那么我这样做是否安全:
$y = ($x <= 350) ? $convert[round(ceil($x/50))] : 40;
还是还有潜在的陷阱和/或更好的解决方案?