2014-10-14 5 views
-2

Я попытался добавить оператор if/else в уже открытую функцию echo, но страница выглядит пустым. Не слишком уверен, правильно ли я конкатенирую.Конкатенация PHP внутри echo

echo '<span class="year-tab-'.$x.' '.if ($single_year==$year_selected) { echo "" } else { echo "display-none" }.' ">'; 

ответ

2

Или вы можете сделать это:

echo '<span class="year-tab-'.$x.' '.($single_year==$year_selected ? "" : "display-none").' ">'; 

См оператор троичного на this page.

5

Вы не можете иметь управляющие структуры внутри конкатенации

$style = ($single_year==$year_selected) ? '' : "display-none"; 
echo '<span class="year-tab-'.$x.' '.$style.'">'; 

Это конкатенация немного неаккуратно. printf()может быть немного чище

printf('<span class="year-tab-%s %s">', 
    %x, 
    ($single_year==$year_selected) ? '' : "display-none" 
); 
+0

На самом деле, вы можете использовать тройной оператор внутри эха, нет необходимости использовать другую переменную в вашем первом примере (для удобства чтения было бы лучше использовать if, если хотя) –

0

Использование тройной оператор:

echo '<span class="year-tab-'.$x; 
echo ($single_year==$year_selected)? '>' : ' style="display:none">'; 

Обратите внимание, что для отображения значений, вы должны заключить его внутри тега дисплея.

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