PHP语法替代?

时间:2013-08-22 11:41:10

标签: php syntax

有没有办法使用这种替代语法?

<div class="lines-rates">
<?php foreach($info as $k => $v){ echo : ?>
<div><span>{$k}</span>{$v}</div><?php ; } ?>
</div><!-- #lines -->

我的意思是:

<?php echo : ?><p>this is your {$username} And this html code could be more than one line and sure other html elements also</p><?php endecho; ?>

所以我们可以很容易地看到HTML代码。

我想在PHP中使用html。不是PHP里面的HTML。

<?php echo '<p>this is your '.$username.' And this html code could be more than one line and sure other html elements also</p>'; ?> 

这绝对不是我想要的方式。

我正在使用

<?php if($info) : ?>
<div class="lines-rates">
<?php foreach($info as $k => $v){ echo "<div><span>{$k}</span>{$v}</div>"; } ?>
</div><!-- #lines -->
<?php endif; ?>

我不想在php里面使用html ..比如

<?php echo "<div><span>{$k}</span>{$v}</div>";?>

也可以使用以下行,但这对我来说太冗长了 - 不是吗?为什么我必须写<?php echo $k; ?>来回显简单变量?

<?php $if($info) : ?>
<h2>Weekly Charter Rates </h2>
<div class="lines-rates">
<?php foreach($info as $k => $v) : ?> 
<div><span><?php echo $k; ?></span><?php echo $k; ?></div>
<?php endforeach; ?>
</div><!-- #lines -->
<?php endif; ?>

我需要尽可能干净纯净的代码。

这种写作再次失败。

<?php foreach($info as $k => $v) : echo <<<EOT ?>
<p>this is your {$username}</p>
...
some more html
..<div><span>$k</span>$k</div>
<?php EOT; ?> 
<?php endforeach; ?>

这几乎是最好的方式。

6 个答案:

答案 0 :(得分:3)

使用此:

<div class="lines-rates">
<?php foreach($info as $k => $v){?>
  <div><span><?php echo $k; ?></span><?php echo $v; ?></div>
<?php } ?>
</div>

如果你只使用两个PHP变量,那么不需要回显整行,只需回显这些变量。

答案 1 :(得分:1)

您可以使用Heredoc syntax

echo <<<EOT
<p>this is your {$username}</p>
...
some more html
..
EOT;

更新

第二行“EOT”中必须没有其他内容。从我给出的链接引用:

  

注意具有结束标识符的行非常重要   必须不包含其他字符,除了可能是分号(;)。

更新2

更改

<?php EOT; ?> 

<?php 
EOT; 
?>

不要指出第二行


答案 2 :(得分:1)

您可以使用Twig等模板语言。语法示例:

<ul id="navigation">
    {% for item in navigation %}
        <li><a href="{{ item.href }}">{{ item.caption }}</a></li>
    {% endfor %}
</ul>

答案 3 :(得分:1)

这个怎么样

<?php echo '<p>this is your '.$username.' And this html code could be more than one line and sure other html elements also</p>'; ?>

答案 4 :(得分:0)

您也可以使用nowdoc

    echo <<<'END_OF_HTML'
        $hello this is {$a->test}
END_OF_HTML;

<强>输出:

  

$你好这是{$ a-&gt; test}

答案 5 :(得分:0)

如果您真的喜欢冒险,可以选择启用短标签,但上面提到的像Twig这样的Heredoc和模板引擎都是更好的主意。

<p>this is your <?=$username;?> And this html code could be more than one line and sure other html elements also</p>