2016-02-04 25 views
3

Мне было интересно, как я могу переписать следующее, используя тройной в тернарном или в рамках альтернативного синтаксиса.trernary foreach вложен в if/else

$tags = get_the_tags(); 
if (!empty($tags)) { 
    foreach ($tags as $tag) { 
     echo $tag->name . ', '; 
    }  
} else { 
    echo 'foobar'; 
} 
+2

Можете ли вы поделиться тем, что вы уже пробовали? –

+0

Нет лучшего места для начала, чем руководство http://php.net/manual/en/language.operators.comparison.php - * Right Sam? * - @JayBlanchard –

+0

Можете ли вы напечатать $ tags и предоставить массив? –

ответ

4

Нет такой вещи, как тройной foreach. Однако вы можете сделать свой условный оператор тройного как этот

echo empty($tags) ? 'foobar' : 
implode(', ',array_map(create_function('$o', 'return $o->name;'),$tags)) ; 

;)

Выход

Foo, бар, Джон

Объяснение

Мы создаем закрытие, которое возвращает массив свойства name всех ваших тегов, а затем просто вставляйте его так, как вы хотите. Если теги пусты, мы показываем foobar, все в одной строке.

+0

woah, ты избил меня до этого – thanksd

+0

Спасибо, я знал, что мне что-то не хватает –

Смежные вопросы