PHP开关的情况下使用HTML
混合的更清洁的方式,我有这个PHP块PHP开关的情况下使用HTML
<?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 } ?>
但这似乎有点messy..any建议
为什么所有的情况下,摆在首位?你只是选择要使用的图像。
额外的好处:逻辑的目的是更清晰。
+1我正在写这个过程。 – 2011-05-06 16:52:17
这很好.... +1 – gd1 2011-05-06 16:52:33
您可以在case语句中的回声的img标签
我同意,该代码是疯狂的。
将所有PHP代码写入一个<?php ?>
块。当您必须打印某些内容时,请使用打印功能或回显结构。
声明变量,可以帮助你阅读和理解的代码。
例如:
<?php
switch ($_GET['class_id']) {
case 1:
$imgpath = ($result['standard_image'] == "") ? "/pre_config/css/images/blue-png2.png" : "/shop_possystems/image/{$result['standard_image']}";
echo '<img src="'.$imgpath.'" alt="" />';
break;
case 2:
// and so on for the other cases...
}
?>
是不是有点不太凌乱?
较杂乱应该包括干净明确的逻辑没有重复imo – 2011-05-06 16:49:33
这将是更好的。但这是一个起点;) – gd1 2011-05-06 16:50:25
switch($_GET['class_id'])
{
case 1:
$source = '/images/src1.png';
$class = 'yourClass';
$alt = 'yourAlt';
break;
case 2:
$source = '/images/src2.png';
$class = 'yourClass2';
$alt = 'yourAlt2';
break;
case 3:
$source = '/images/src3.png';
$class = 'yourClass3';
$alt = 'yourAlt3';
break;
default:
$source = '/images/src4.png';
$class = 'yourClass4';
$alt = 'yourAlt4';
break;
}
$image = <<<EOF
<img src="$source" class="$class" alt="$alt" />
EOF;
echo $image;
<?php
$image = $result['standard_image'];
switch ($_GET['class_id']) {
case 2: $image = $result['business_image']; break;
case 3: $image = $result['premium_image']; break;
}
?>
<img src="<?php print $image == "" ? "/pre_config/css/images/blue-png2.png" : "/shop_possystems/image/{$image}"; ?>" alt="" />
你并不需要打开和关闭PHP标记每一行。
<?php
$img = '';
switch ($_GET['class_id']) {
case 1 :
$img = $result['standard_image'];
break;
case 2 :
$img = $result['business_image'];
break;
case 3 :
$img = $result['premium_image'];
break;
default :
$img = $result['standard_image'];
break;
}
if (!$img) {
$img = 'blue-png2.png';
}
?>
<img src="<?php print $img; ?>" alt="" />
您可以删除换行符,你认为合适......我始终格式化的东西作为一个原则,你也应该这么做! :)
+1这是很好,但我不喜欢它依靠PHP鸭子打字(见'if(!$ img)')看起来很聪明,但实际上并不太清楚。然而,做得好 – gd1 2011-05-06 16:54:55
如果您想使用的开关,我建议像下面这样。
<?php
$img_type = '';
switch ($_GET['class_id']) {
case 1:
$img_type = 'standard_image';
break;
case 2:
$img_type = 'business_image';
break;
case 3:
$img_type = 'premium_image';
break;
default:
$img_type = 'standard_image';
break;
}
$src = $result[$img_type] == "" ? "/pre_config/css/images/blue-png2.png" : "/shop_possystems/image/{$result[$img_type]}";
?>
<img src="<?php print $src ?>" alt="" />
$array = array(
array('/images/src1.png', 'yourClass', 'yourAlt'),
array('/images/src2.png', 'yourClass2', 'yourAlt2'),
array('/images/src3.png', 'yourClass3', 'yourAlt3'));
echo '<img src="'.$array[$_GET['class_id']][0].'" class="'.$array[$_GET['class_id']][1].'" alt="'.$array[$_GET['class_id']][2].'" />';
我会去的实际上是把这个块中,并使用一些预定义变量。一点点清洁,至少对我来说...
<?php
$p = "/pre_config/css/images/blue-png2.png";
$s = "/shop_possystems/image/";
switch ($_GET['class_id']) {
case 1:
$x = (empty($result['standard_image']) ? $p : "{$s}/{$result['standard_image']}";
break;
case 2:
$x = (empty($result['business_image']) ? $p : "{$s}/{$result['business_image']}";
break;
case 3:
$x = (empty($result['premium_image']) ? $p : "{$s}/{$result['standard_image']}";
break;
default:
$x = (empty($result['standard_image']) ? $p : "{$s}/{$result['standard_image']}";
break;
}
echo "<img src=\"{$x}\" alt=\"\" />";
?>
是...
<?php
$a = array(0, 0, 'business_image', 'premium_image');
$t = $a[(int)$_GET['class_id']] || "standard_image";
echo "<img src=\"";
echo $result[$t] === "" ? "/pre_config/css/images/blue-png2.png" : "/shop_possystems/image/{$result['standard_image']}";
echo "\" />";
?>
可以减少PHP标签 – 2011-05-06 16:44:53
圣牛,这是一个很多的标签! – Kelly 2011-05-06 16:46:08
我的大脑伤害:( – Hannes 2011-05-06 16:56:30