我有以下PHP代码:
<?php
//code above
$pic_1 = $afil['image_1'];
$pic_2 = $afil['image_2'];
$pic_3 = $afil['image_3'];
$pic_4 = $afil['image_4'];
$pic_5 = $afil['image_5'];
$pic_6 = $afil['image_6'];
$pic_7= $afil['image_7'];
$pic_8 = $afil['image_8'];
$pic_9 = $afil['image_9'];
$pic_10 = $afil['image_10'];
if ($pic_1 = "")
{
$pic_1 = //defaultpic - to be defined, same as below
}
if ($pic_2 = "")
{
$pic_2 = //defaultpic
}
?>
不是重复每张图片的这些“if”语句(直到$ pic 10),我只是想知道是否有人可以指出更优雅和有效的方式。我是php的新手,这是我遇到的新情况。非常感谢。
答案 0 :(得分:4)
使用arrays
并使用1 if
语句循环显示它们,如下所示,
foreach($afil as $k => $v) {
if(empty($v))
$afil[$k] = ...//default pic
}
或者,如果您希望有一个额外的数组$pics
(以备将来使用),
foreach($afil as $k => $v) {
$pics[$k] = $v;
if(empty($v))
$pics[$k] = ...//default pic
}
此外,=
是一个赋值运算符。要进行比较(或条件检查),您需要使用==
或===
(类型安全)。
修改强>
$afil = mysql_query(...);
while($row = mysql_fetch_array($afil)) {
//In here, say you create an array $result_rows with all the rows
$result_rows[] = $row;
}
然后,在foreach中使用$result_rows
。
答案 1 :(得分:0)
Arrays是您的黄金解决方案:
$pic = array('image_1', 'image_2', 'image_3'....);
for ($i = 0; $i < count($pic); $i++){
if ($pic[$i] == ""){
$pic[$i] = //defaultpic -
}
}