Php echo语句中的逗号表示什么?
我正在尝试从递归函数回显字符串:Php echo语句中的逗号表示什么?,php,echo,Php,Echo,我正在尝试从递归函数回显字符串: echo“”,$node,recurse($arr),“” 和 echo“”$节点。递归($arr)。“” 我得到的输出是: (来自第一个echo语句) 3478956 (来自第二个echo语句) 7984536 echo是一种语言构造,可以接受由逗号分隔的多个参数。效果与连接的字符串相同 输出应该不会有什么不同——我想不出一个实例会有什么不同 编辑:啊,但确实如此。这是因为您的函数echo()es会删除这些内容。在第一个实例中,和$node获取输出;然后函数
echo“”,$node,recurse($arr),“ ”代码>
和
echo“”$节点。递归($arr)。“ ”代码>
我得到的输出是:
(来自第一个echo语句)
- 3
- 4
- 7
- 8
- 9
- 5
- 6
(来自第二个echo语句)
- 7
- 9
- 8
- 4
- 5
- 3
- 6
echo
是一种语言构造,可以接受由逗号分隔的多个参数。效果与连接的字符串相同
输出应该不会有什么不同——我想不出一个实例会有什么不同
编辑:啊,但确实如此。这是因为您的函数echo()
es会删除这些内容。在第一个实例中,
和$node
获取输出;然后函数的输出就来了
我会让WriteList
简单地递归返回值。编辑:好的,我明白了。罪魁祸首是您的writeList()
函数。在该函数中有一个次要的echo
执行此操作时:
echo "<li>", $node, writeList($arr), "</li>";
echo "<li>" . $node . writeList($arr) . "</li>";
但是对于那个特殊的语句,为什么不直接连接呢
$out = "<li>" . $node . writeList($arr) . "</li>";
$out=“”$节点。写列表($arr)。“ ”;
它们有什么区别?在被回音之前,所有内容都将被视为字符串…我已经提供了我正在使用的函数,输入数组和输出pur用于两种情况。告诉我,这不是我的错误,而是一个概念性的问题我也想连接。但是,正如我所说,这两种输出在这里是不同的(@Stoic:将输出粘贴到您的问题中。我们已经为此添加了函数、输入和输出。所以,问题是,在第一次求值中,首先发生,然后用函数调用逐个替换,而在第二次求值中,字符串是通过调用递归函数构造的,而不是形成字符串,实际上在每个级别上都会回显它……对吗?我在想函数调用会生成什么样的输出,但没有骰子。函数内部不会返回任何可能被外部回声意外回声的内容。等等,我想我搞定了;看到我的答案了。@BoltClock是的,我刚才添加了同样的内容:)
<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>
echo "<li>", $node, writeList($arr), "</li>";
echo "<li>";
echo $node;
echo writeList($arr);
echo "</li>";
echo "<li>" . $node . writeList($arr) . "</li>";
ob_start();
echo "<li>", $node, writeList($arr), "</li>";
$out = ob_get_clean();
$out = "<li>" . $node . writeList($arr) . "</li>";