2014-06-26 46 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

在echo語句之前執行邏輯並將結果存儲在變量中。然後在echo語句中正常回顯它。 –

回答

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輸出。相反,請確保$herelocecho之前始終有效。

// 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一定更容易。