IF/ELSE для эхо-изображения в PHP

Я пытаюсь повторить конкретное изображение, основанное на результатах инструкции IF/ELSE, однако я не могу полностью сформулировать формулировку инструкции IF/ELSE. Я относительный новичок в PHP, поэтому я уверен, что это всего лишь небольшая ошибка в коде где-нибудь, но если кто-то может оказать какую-либо помощь, я был бы благодарен!

Я сейчас на стадии ниже:

<?php
     $fresh = if ($reviews['reviews']['freshness']) = 'fresh' {
            echo '<img src="assets/images/fresh.png" class="rating" title="Fresh" alt="Fresh" />';
        } else {
            echo '<img src="assets/images/rotten.png" class="rating" title="Rotten" alt="Rotten" />';
        }
?>

<?php
                        foreach($reviews['reviews'] as $rv){
                            if ($tmp++ < 10);
                            echo $fresh;
                            echo '<li>' . $rv['quote'] . '</li>';
                        }
                    ?>

Спасибо!

Ответы

Ответ 1

вы не можете назначить оператор if значению.

if ($reviews['reviews']['freshness'] == 'fresh') {
            echo '<img src="assets/images/fresh.png" class="rating" title="Fresh" alt="Fresh"/>';
        } else {
            echo '<img src="assets/images/rotten.png" class="rating" title="Rotten" alt="Rotten" />';
    }

другой более красивый способ:

if ($reviews['reviews']['freshness'] == 'fresh') {
   $image = "fresh";
}
else {
    $image = "rotten";
}

echo '<img src="assets/images/' . $image . '.png" class="rating" title="Rotten" alt="Rotten" />';

Ответ 2

Yup, ваш код довольно не прав, но я вижу, что вы пытаетесь сделать.

<?php
if ($reviews['reviews']['freshness'] == 'fresh') {
    $image = '<img src="assets/images/fresh.png" class="rating" title="Fresh" alt="Fresh" />';
} else {
    $image = '<img src="assets/images/rotten.png" class="rating" title="Rotten" alt="Rotten" />';
}
?>

Ваша основная ошибка заключается в неправильном позиционировании скобок и в том, что оператор IF НЕ возвращает значение в PHP.

Тем не менее, я не уверен, почему вы делаете свою петлю foreach, поэтому я не коснулся этого; возможно, вы могли бы объяснить дальше, чего вы пытаетесь достичь?

Ответ 3

Это может помочь вам в правильном направлении:

<?php
if ($reviews['reviews']['freshness'] == 'fresh'){
    echo '<img src="assets/images/fresh.png" class="rating" title="Fresh" alt="Fresh" />';
}
else{
    echo '<img src="assets/images/rotten.png" class="rating" title="Rotten" alt="Rotten" />';
}

while($reviews['reviews']){
    for($i=0;i<10;i++{
        echo // What do you actually want to print out?
        echo '<li>'.$reviews['reviews']['quote'].'</li>';
    }
}
?>

Ответ 4

Я думаю, что это то, чего ты хочешь...

<?php
    for ($tmp = 0; $tmp < 10 && $tmp < count($reviews); $tmp++) {
        if ($reviews[$tmp]['freshness'] == 'fresh') {
            echo '<img src="assets/images/fresh.png" class="rating" title="Fresh" alt="Fresh" />';
        } else {
             echo '<img src="assets/images/rotten.png" class="rating" title="Rotten" alt="Rotten" />';
        }
        echo '<li>' . $reviews[$tmp]['quote'] . '</li>';
    }
 ?>

ETA: Посмотрел API и исправил пару вещей.

ETAx2: Для тех, кто хочет увидеть пример возврата JSON из API...

{
"total": 41,
"reviews": [
    {
        "critic": "Joe Baltake",
        "date": "2010-07-27",
        "freshness": "fresh",
        "publication": "Passionate Moviegoer",
        "quote": "'Toy Story 3': Alternately affecting, hilarious and heartbreaking and the most original prison-escape movie ever made",
        "links": {
            "review": "http://thepassionatemoviegoer.blogspot.com/2010/07/perfectimperfect.html"
        }
    },
    {
        "critic": "Rafer Guzman",
        "date": "2010-07-06",
        "freshness": "fresh",
        "publication": "Newsday",
        "quote": "It sadder and scarier than its predecessors, but it also may be the most important chapter in the tale.",
        "links": {
            "review": "http://www.newsday.com/entertainment/movies/toy-story-3-andy-grows-up-1.2028598"
        }
    },
    {
        "critic": "Richard Roeper",
        "date": "2010-06-30",
        "original_score": "5/5",
        "freshness": "fresh",
        "publication": "Richard Roeper.com",
        "quote": "The best movie of the year so far.",
        "links": {
            "review": "http://www.richardroeper.com/reviews/toystory3.aspx"
        }
    },
...

Ответ 5

Через пробную версию и ошибку я нашел следующее решение.

<?php
  $ID=$row_RecordsetLast['ID'];

$image = '../../pics/'.$ID.'.jpg';


if (file_exists($image)) {
    echo '<img src="../../pics/' . $ID . '.jpg" alt="" width="110" height="161" />';
} else {
    echo '<img src="guest.png" alt="" width="110" height="161" />';
}
?>