从PHP正确回应HTML

时间:2013-01-11 23:41:13

标签: php html echo

我有一个名为paint()的方法的类,所以我调用$object->paint();并返回html代码,以我喜欢的方式显示对象。 在一个函数中,我有一个这些对象的数组,所以我做这样的事情:

$code = '<p class="wrapper">';
foreach( $object_arr as $object ){
    $code .= $object->paint();
}
$code .='</p>';
echo $code;

但我得到的结果是:

<p class="wrapper"></p>
<figure id="f1">Figure 1</figure>
<figure id="f2">Figure 2</figure>
...
<figure id="fn">Figure n</figure>

函数paint()返回绘制对象的代码,我希望看到:

<p class="wrapper">
    <figure id="f1">Figure 1</figure>
    <figure id="f2">Figure 2</figure>
    ...
    <figure id="fn">Figure n</figure>
</p>

我做错了什么?

3 个答案:

答案 0 :(得分:1)

更多代码会有所帮助,但这可能会让您走上正确的轨道。

什么是$ object_arr数组。你能在对象数组中发布对象的例子吗?

使用我的示例,您还必须传入索引以获取id =“fnn”。

如果您发布更多代码,我可以澄清我的答案。

<?php
function paint($str){
    return '<figure id="fn">'.$str.'</figure>';
}
$object_arr =Array('happy','beans');
$code = '<p class="wrapper">';
foreach( $object_arr as $object ){
    $code .= paint($object);
}
$code .='</p>';
echo $code;

答案 1 :(得分:1)

您正在查看的结果可能会被浏览器更正。 p小时候不接受figure,因此浏览器可能会通过关闭您的第一个<p class="wrapper">来解决此问题。

答案 2 :(得分:-2)

如果您使用单引号,则在方法调用之前添加一个选项卡:

$code .= '    ' . $object->paint();

但这会更容易:

$code .= "\t" . $object->paint();