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>";