2014-06-26 49 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一定更容易。