【发布时间】:2010-12-08 23:32:20
【问题描述】:
我正在尝试从递归函数中回显一个字符串:echo "<li>", $node, recurse($arr), "</li>";
和echo "<li>" . $node . recurse($arr) . "</li>";
function writeList($tree)
{
if($tree == null) return;
echo "<ul>";
foreach($tree as $node=>$children) {
echo "<li>", $node, writeList($children) , "</li>";
}
echo "</ul>";
}
$tree 是一个树状结构,可以在this question (form2) 中找到
而且,我注意到两者的输出不同。
谁能告诉我在一般情况下使用, 和. 的区别,特别是在这个例子中?
编辑:如果不是回显字符串,我想将从此函数生成的字符串存储在一个变量中怎么办。我对第一个 echo 语句的输出特别感兴趣。
编辑: 我正在喂这个数组:
array
3 =>
array
4 =>
array
7 => null
8 =>
array
9 => null
5 => null
6 => null
我得到的输出是:
(来自第一个 echo 语句)
<ul><li>3<ul><li>4<ul><li>7</li><li>8<ul><li>9</li></ul></li></ul></li><li>5</li></ul></li><li>6</li></ul>
(来自第二个 echo 语句)
<ul><ul><ul><li>7</li><ul><li>9</li></ul><li>8</li></ul><li>4</li><li>5</li></ul><li>3</li><li>6</li></ul>
【问题讨论】:
-
它们有何不同?在回显之前,所有内容都将被视为字符串...
-
我已经提供了我正在使用的函数,输入数组和输出两种情况。告诉我,这不是我的错误,而是一个概念问题。 :)