Dar*_*ney 0 php if-statement ternary-operator
我正在使用三元if语句,因为我不能使用switch进行以下操作,但是,有更好的方法吗?我最近读到这些可能是资源匮乏的?(这可以在页面中多次调用)
$filter= (
($price_check > '0' && $price_check < '20.01') ? '020' :
(($price_check > '20.00' && $price_check < '50.01') ? '2050' :
(($price_check > '50.00' && $price_check < '100.01') ? '50100' :
(($price_check > '100.00' && $price_check < '200.01') ? '100200' :
(($price_check > '200.00' && $price_check < '500.01') ? '200500' :
(($price_check > '500.00') ? '501' : '0'
))))));
Run Code Online (Sandbox Code Playgroud)
谈论三元运算符的"效率"是一个红色的鲱鱼.它的速度并不重要,如果将代码放在计算绑定应用程序的内部循环内(这几乎肯定不是),它可能仍然无关紧要.
您应该问的是"六个月后,当我需要做出改变时,我是否想在我面前找到这个?".
应始终将可维护性作为经验.如果你不知道这个代码确实是一个瓶颈的事实,你应该尽可能方便地编写它.
因此,您可能会考虑性能较差但可维护性较高的替代样式,例如:
$data = array(
'0' => '020',
'20.00' => '2050',
'50.00' => '50100',
// ...
);
$price_check = '...';
$filter = '0'; // default value
foreach ($data as $floor => $value) {
if ($floor > $price_check) break;
$filter = $value;
}
Run Code Online (Sandbox Code Playgroud)