2

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

4

2 回答 2

4

只需 1条语句就可以使用arrays和循环它们,就像这样,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;
 } 

然后,$result_rows在 foreach 中使用。

于 2012-12-03T20:28:46.780 回答
0

Arrays是您的黄金解决方案:

$pic = array('image_1', 'image_2', 'image_3'....);

for ($i = 0; $i < count($pic); $i++){
if ($pic[$i] == ""){
$pic[$i] = //defaultpic - 
}

}
于 2012-12-03T20:29:46.133 回答