I am asking this question to know, is there other best way to write this logic in a minimum of lines?
This is my code with lot of if
and elseif
conditions:
if ($emission <= 100 ) {
$cssClass = "emission_a";
} elseif ($emission > 101 && $emission <= 120 ){
$cssClass = "emission_b";
} elseif ($emission >= 121 && $emission <= 150 ){
$cssClass = "emission_c";
} elseif ($emission >= 151 && $emission <= 165 ){
$cssClass = "emission_d";
} elseif ($emission >= 166 && $emission <= 185 ){
$cssClass = "emission_e";
} elseif ($emission >= 186 && $emission <= 125 ){
$cssClass = "emission_f";
} elseif ($emission >= 226){
$cssClass = "emission_g";
}
Hope somebody may help me out. Thank you.
You could spare some chars if you simplified the conditions, but you will need the same amount of if/elseif statements
<?php
if ($emission <= 100 ) {
$cssClass = "emission_a";
} elseif ($emission <= 120 ) {
$cssClass = "emission_b";
} elseif ($emission <= 150 ) {
$cssClass = "emission_c";
} elseif ($emission <= 165 ) {
$cssClass = "emission_d";
} elseif ($emission <= 185 ) {
$cssClass = "emission_e";
} else {
$cssClass = "emission_g";
}
// this one makes no sense, maybe a typo?
// } elseif ($emission >= 186 && $emission <= 125 ){
Or you try it with an mapping array like this
<?php
$mapping = array(
100 => 'emission_a',
120 => 'emission_b',
150 => 'emission_c',
165 => 'emission_d',
185 => 'emission_e',
225 => 'emission_f'
);
$cssClass = 'emission_g'; // default class if $emission is > 225
foreach ($mapping as $limit => $class) {
if ($emission <= $limit) {
$cssClass = $class;
break;
}
}