оператор php if для отображения удалить миниатюру

Я пытаюсь использовать оператор if, чтобы, если переменная не установлена, она отображала «noimg.jpg» или не отображала миниатюру, но в данный момент она этого не делает, а отображает сломанный эскиз.

$ feed = new SimplePie_random_sort ();

$feed->set_feed_url(array(

'http://www.thelocal.de/feeds/rss.php',
'http://dailymail.co.uk',
'http://www.exberliner.com/',
'http://www.telegraph.co.uk/news/worldnews/europe/germany/',
));


$feed->set_item_limit(3);
//enable caching
$feed->enable_cache(true);

//provide the caching folder
$feed->set_cache_location('cache');

//set the amount of seconds you want to cache the feed
$feed->set_cache_duration(1800);

//init the process
$feed->init();

//let simplepie handle the content type (atom, RSS...)
$feed->handle_content_type();

<?php foreach ($feed->get_items() as $item): ?>
<?php if ($enclosure = $item->get_enclosure())
{
echo '<img src="' . $enclosure->get_link() . '" class="feed-thumb" />';
}
else echo'<img src="noimg.jpg">';
?>
<?php endforeach; ?>

результаты из var_dump:
object(SimplePie_Enclosure)#399 (27) { ["bitrate"]=> NULL ["captions"]=> NULL ["categories"]=> NULL ["channels"]=> NULL ["copyright"]=> NULL ["credits"]=> NULL ["description"]=> NULL ["duration"]=> NULL ["expression"]=> NULL ["framerate"]=> NULL ["handler"]=> NULL ["hashes"]=> NULL ["height"]=> NULL ["javascript"]=> NULL ["keywords"]=> NULL ["lang"]=> NULL ["length"]=> NULL ["link"]=> NULL ["medium"]=> NULL ["player"]=> NULL ["ratings"]=> NULL ["restrictions"]=> array(1) { [0]=> object(SimplePie_Restriction)#220 (3) { ["relationship"]=> string(5) "allow" ["type"]=> NULL ["value"]=> string(7) "default" } } ["samplingrate"]=> NULL ["thumbnails"]=> NULL ["title"]=> NULL ["type"]=> NULL ["width"]=> NULL } Я не уверен, как изменить утверждение if на основе этой информации?

-1

Решение

У вас есть назначение внутри вашего if

if ($enclosure = $item->get_enclosure())

Это назначение оценивается как значение, которое вы назначаете $enclosure, Если это значение истинно, то условие оценивается как true, В противном случае он будет оценивать false, Проблема в том, что в некоторых случаях вы ожидаете, что false, но это оценивается как true, Решение состоит в том, чтобы уточнить ваше условие, чтобы оценить правильное условие и убедиться, что вы не забыли присвоение значения. Неплохая идея поставить var_dump($enclosure) внутри блока представлены в виде фигурных скобок и воспроизведите вопрос. Что сбрасывается? Объект? Как это правда? Возьмите информацию, которую вы собрали таким образом, и исправьте условие.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]