2014-06-26 5 views
1

Я пытаюсь вставить ниже PHP в echo, но возникли проблемы с правильным форматированием.Вставить PHP в Echo

PHP:

<?php if (isset($heroloc)) { echo '@ '.$heroloc;} ?> 

Хотел бы разместить if заявление в ниже сразу после $created_time

echo '<span class="time">'.$created_time.'</span>'; 

Somethign, как это, но отформатирован:

echo '<span class="time">'.$created_time. if (isset($heroloc)) { echo '@ '.$heroloc;'</span>'; 
+0

Вы логично перед своим эхо-заявлением и сохраняете результаты в переменной. Затем повторите это нормально в своем выражении эха. –

ответ

5

Используйте тернарный оператор

<?php echo '<span class="time">'.$created_time.(isset($heroloc) ? '@ '.$heroloc : '').'</span>'; 
+0

'echo NULL;' ...? –

+0

он не будет эхом NULL, это просто NULL – Dan

+0

Я знаю, что на самом деле ничего не выводит, но мне просто интересно, почему вы это напишете. '' ''было бы намного более уместным. –

1

Вы можете написать это по-разному.

Не забывайте, как удобно sprintf может быть.

$when = sprintf(isset($hereloc) ? '%s @ %s' : '%s', $created_time, $hereloc); 
echo "<span class='time'>$when</span>"; 

Тройная оператор

echo '<span class="time">'.$created_time.(isset($heroloc) ? '@ '.$heroloc : '').'</span>' 

Но, правильный подход, чтобы не смесь логики и HTML вывода. Вместо этого убедитесь, что $hereloc всегда действует до echo.

// put your rules in a controller.php file 
// ensure your view receives all required variables. 
$hereloc = isset($hereloc) ? " @ $hereloc" : ''; 

// then separate your echo statements to a view.php file 
echo "<span class='time'>{$created_time}{$hereloc}</span>"; 

Этот подход делает чтение вашего view.php более легким.