-1

我有一个类,它有一个方法,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>

我做错了什么?

4

3 回答 3

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;
于 2013-01-11T23:48:21.107 回答
1

您正在查看的结果可能会被您的浏览器更正。p不接受figure作为孩子,因此浏览器可能会通过关闭您的第一个<p class="wrapper">.

于 2013-01-11T23:54:00.110 回答
-2

如果您使用单引号,则在方法调用之前放置一个制表符:

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

但这会更容易:

$code .= "\t" . $object->paint();
于 2013-01-11T23:44:06.893 回答