我想用适当的代码替换这里的switch语句。我需要建议以改进的方式这样做。
switch(true) {
case ($value === 'test1'):
$testArray['class'] = 'incomplete';
return $this->icon(
'test_0.png',
$testArray
);
case ($value === 'test2'):
$testArray['class'] = 'progress';
return $this->icon(
'test_1.png',
$testArray
);
case ($value === 'test3'):
$testArray['class'] = 'complete';
return $this->icon(
'test_3.png',
$testArray
);
}
答案 0 :(得分:1)
尝试使用$value
,'incomplete'
或'progress'
设置'complete'
。将imgs重命名为incomplete.png
,progress.png
和complete.png
然后这样做:
$testArray['class'] = $value;
return $this->icon(
$value.'.png',
$testArray
);
这一切都取决于你设置$value
的方式。但是,如果你能够以正确的方式设置它,它会更短,更容易使用。
答案 1 :(得分:0)
改进了switch语句,
switch($value) {
case 'test1':
$testArray['class'] = 'incomplete';
$image = 'test_0.png';
break;
case 'test2':
$testArray['class'] = 'progress';
$image = 'test_1.png';
break;
case 'test3':
$testArray['class'] = 'complete';
$image = 'test_3.png';
break;
default :
break;
}
return $this->icon($image,$testArray);
或使用if statment,
if ($value == 'test1') {
$testArray['class'] = 'incomplete';
$image = 'test_0.png';
} elseif ($value == 'test2') {
$testArray['class'] = 'progress';
$image = 'test_1.png';
} else {
$testArray['class'] = 'complete';
$image = 'test_3.png';
}
return $this->icon($image,$testArray);