если еще проблема с функцией? - PullRequest
0 голосов
/ 05 августа 2011

У меня есть следующий код с оператором if ... else внутри цикла while.

$colour = array("50305A", "E33600", "DBDD02", "73BE58");
$nextcolr = next($colour);
 if ($nextcolr == FALSE)
 {
    reset($colour);
    echo current($colour);
 }
 else
 {
    echo next($colour);
 }

Я не могу понять, почему то, что когда-либо содержится в операторе else, не выполняется, даже если я переключаю два оператора и меняю оператор. Кто-нибудь может мне помочь?

Весь цикл while:

while($row = mysql_fetch_array($result))
  {
  echo "by <a href='/neuro/profile.php?userid=$row[MemberID]'>" . $row['FirstName'] . " " . $row['LastName'] . "</a> on " . $row['Timestamp'] . " | " . $row['NumberOfComments'] . " comments.";
  echo "<div id='blog' style='background-color:#";
  if ($nextcolr == FALSE)
    {
    reset($colour);
    echo current($colour);
    }
  else
    {
    echo next($colour);
    }
  echo "'><a href='blog.php?threadid=" . $row['tID'] . "'>" . $row['Title'] . "</a></div>";
  }

Ответы [ 4 ]

3 голосов
/ 05 августа 2011
$colour = array("50305A", "E33600", "DBDD02", "73BE58");
while ... {
    $nextcolr = next($colour);
    if ($nextcolr === FALSE)
    {
        reset($colour);
    }
    echo current($colour);
}

- так должен выглядеть ваш цикл while.Если я прав, вы также определяете $ color в цикле while, что может вызвать проблемы.

1 голос
/ 05 августа 2011

Если вы хотите повторить этот массив несколько раз, вы можете сделать это следующим образом:

 $colour = array("50305A", "E33600", "DBDD02", "73BE58");
 $i = 0;

 while ... {
    ...
    echo $colour[$i++ % count($colour)];
    ...
 }

Так что вам не нужен этот блок if-else.

1 голос
/ 05 августа 2011

Если все это находится в цикле while, то вы повторно объявляете массив на каждой итерации, возвращая внутренний указатель массива в начало каждой итерации.

0 голосов
/ 05 августа 2011

Проблема с вашим исходным циклом while в том, что вы никогда не меняете значение $ nextcolr.Таким образом, он всегда остается ЛОЖНЫМ, а остальная часть никогда не выполняется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...