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" />';
}
?>