PHP条件和回显HTML

时间:2012-02-14 10:07:07

标签: php

当我使用PHP和HTML时,我通常会这样做:

<?php if ($myvar = 'blah') {
   echo '<div>some html here</div>';
} else {
   echo 'Nothing here';
}
?>

这有效,但我现在有一堆HTML,我需要添加一个条件,我试图避免这样做:

<?php if ($myvar = 'blah') {
   echo '<div>some html here</div>';
   echo '<div>some other html here</div>';
   echo '<div>some other html here</div>';
}
?>

有没有办法包装整个html块呢?

6 个答案:

答案 0 :(得分:6)

您可以删除HTML块并将其反转。

<?php

// get value of $myvar here

?>

<?php if ($myvar == 'blah):?>

<div>some html here</div>
<div>some html here</div>

<?php elseif ($myvar == 'test'):?>

<div>some html here</div>
<div>some html here</div>
<div>some html here</div>

<?php else:?>

<div>some html here</div>

<?php endif;?>

或者您也可以使用EOD,例如

echo <<<EOD

<div>some html here</div>
<div>some html here</div>
<div>some html here</div>

EOD;

答案 1 :(得分:2)

退出PHP模式。

<?php if ($myvar = 'blah') { ?>
   <div>some html here</div>
   <div>some other html here</div>
   <div>some other html here</div>
<?php } ?>

或者,如果单独维护它是有意义的,请将数据移动到另一个文件:

<?php if ($myvar = 'blah') { 
    include('foo.php'); 
} ?>

或者,使用heredoc syntax

if ($myvar = 'blah') {
echo <<<EOT
<div>some html here</div>
<div>some other html here</div>
<div>some other html here</div>
EOT;
}

答案 2 :(得分:0)

你可以这样做。回声可以跨越多行

<?php if ($myvar = 'blah') {
   echo '<div>some html here</div>
   <div>some other html here</div>
   <div>some other html here</div>';
}
?>

或者你可以使用echo函数的多个参数

<?php if ($myvar = 'blah') {
   echo '<div>some html here</div>',
   '<div>some other html here</div>',
   '<div>some other html here</div>';
}
?>

答案 3 :(得分:0)

我有时会这样做:

<?php    
if ($myvar = 'blah') {
?>
   <div>some html here</div>
   <div>some other html here</div>
   <div>some other html here</div>
<?php
   }
?>

答案 4 :(得分:0)

你是说这个意思吗?

<强>原始

echo '<div>some html here</div>';
echo '<div>some other html here</div>';
echo '<div>some other html here</div>';

合并为一个变量

$html = '<div>some html here</div><div>some other html here</div><div>some other html here</div>'

echo $html;

变量连接

$html = '<div>some html here</div>';
$html .= '<div>some other html here</div>';
$html .= '<div>some other html here</div>';

echo $html;

关闭php标记

?>
<div>some html here</div>
<div>some other html here</div>
<div>some other html here</div>
<?php

答案 5 :(得分:0)

输出 HTML的可靠方法是退出PHP模式:

<?php if ($myvar = 'blah') { ?>
   <div>some html here</div>
   <div>some other html here</div>
   <div>some other html here</div>
<?php } ?>

除此之外,不应打印任何HTML标记。

要将结果HTML存储在变量中,您可以使用上面的方法与输出缓冲一起使用,或者使用heredoc / concatenation。