PHP несколько возвратов - PullRequest
0 голосов
/ 25 апреля 2011

Я новичок здесь и php.
Я изменил пользовательский скрипт, который был сделан для меня некоторое время назад, чтобы иметь возможность выводить разные цвета шрифта (css) в зависимости от того, сколько лет статье ($ rdate). У меня проблема в том, что до сих пор работают только 2 функции: «если» и «еще» работают, но оператор «elseif» сохраняет тот же аспект, что и оператор «если». Есть идеи, что может вызвать это?

function pop_rdate($ps_id) {
    global $link, $today, $base_url, $config;
    $blog= f(q("SELECT * FROM blog WHERE ps_id='".$ps_id."'", $link));
            $rdate = date('F d, Y', $blog->review_date);
            if (strtotime("now") > strtotime("+6 month", strtotime($rdate))) {
   return "<span class='med'>".$rdate."</span>";
}               elseif (strtotime("now") > strtotime("+12 month", strtotime($rdate))) {
   return "<span class='warning'>".$rdate."</span>";
}               else {
   return "<span class='good'>".$rdate."</span>";
}
}

Спасибо за вашу помощь!

Ответы [ 2 ]

1 голос
/ 25 апреля 2011

strtotime("now") > strtotime("+12 month", strtotime($rdate)

также будет strtotime("now") > strtotime("+6 month", strtotime($rdate))

Так что ваше состояние не так.a> 12 также> 6

Вы должны использовать

if (strtotime("now") > strtotime("+12 month", strtotime($rdate))) {
   return "<span class='warning'>".$rdate."</span>";
}              
elseif (strtotime("now") > strtotime("+6 month", strtotime($rdate))) {
   return "<span class='med'>".$rdate."</span>";
}               else {
   return "<span class='good'>".$rdate."</span>";
}
0 голосов
/ 25 апреля 2011

Это потому, что первый if-statement будет истинным для тех же значений, что и второй (elseif) оператор. Так что оно никогда не войдет в тело elseif.

if (strtotime("now") > strtotime("+12 month", strtotime($rdate))) {

    return "<span class='warning'>".$rdate."</span>";

} elseif (strtotime("now") > strtotime("+6 month", strtotime($rdate))) {

    return "<span class='med'>".$rdate."</span>";

} else {

    return "<span class='good'>".$rdate."</span>";

}
...