更简洁的混合PHP开关案例与HTML的方式

Mat*_*iby 2 html php switch-statement

我有这个php块

<?php switch ($_GET['class_id']) { ?>
<?php case 1:    ?>
<img src="<?php print $result['standard_image'] == "" ? "/pre_config/css/images/blue-png2.png" : "/shop_possystems/image/{$result['standard_image']}" ?>" alt="" />
<?php break; ?>
<?php case 2:    ?>
<img src="<?php print $result['business_image'] == "" ? "/pre_config/css/images/blue-png2.png" : "/shop_possystems/image/{$result['business_image']}" ?>" alt="" />
<?php break; ?>
<?php case 3:    ?>
<img src="<?php print $result['premium_image'] == "" ? "/pre_config/css/images/blue-png2.png" : "/shop_possystems/image/{$result['premium_image']}" ?>" alt="" />
<?php break; ?>
<?php default: ?>
<img src="<?php print $result['standard_image'] == "" ? "/pre_config/css/images/blue-png2.png" : "/shop_possystems/image/{$result['standard_image']}" ?>" alt="" />
<?php break; ?>
<?php } ?>
Run Code Online (Sandbox Code Playgroud)

但这似乎有点凌乱..任何建议

Vot*_*ple 10

为什么所有案件都放在第一位?你只是选择要使用的图像.

$images = array(
  1 => 'standard_image',
  2 => 'business_image',
  3 => 'premium_image'
);

$id = $_GET['class_id'];
$image_key = (isset($images[$id])) ? $images[$id] : 'standard_image';

$image = '/pre_config/css/images/blue-png2.png';
if ($result[$image_key] != '')
    $image = $result[$image_key];

echo '<img src="' . $image . '" alt="Logo" />';
Run Code Online (Sandbox Code Playgroud)

额外奖励:逻辑的目的更清晰.