一种改变这个PHP代码的方法

时间:2012-12-03 20:24:27

标签: php if-statement

我有以下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的新手,这是我遇到的新情况。非常感谢。

2 个答案:

答案 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 - 
}

}