Je suis en train de faire écho une chaîne à partir d'une fonction récursive:
echo "<li>", $node, recurse($arr), "</li>";
et
echo "<li>" . $node . recurse($arr) . "</li>";
que signifie la virgule dans l'instruction echo?
function writeList($tree)
{
if($tree == null) return;
echo "<ul>";
foreach($tree as $node=>$children) {
echo "<li>", $node, writeList($children) , "</li>";
}
echo "</ul>";
}
$tree
est une structure arborescente, comme on se trouve dans this question (form2)
Et, je peux remarquer que la sortie des deux est différente.
Quelqu'un peut-il me dire la différence en utilisant ,
et .
en général, et en particulier, dans cet exemple?
EDIT: si plutôt que faisant écho aux cordes, je veux stocker la chaîne produite à partir de cette fonction dans une variable. Je suis, en particulier, intéressé par la sortie reçue de la première déclaration echo
.
EDIT: Je nourrissais ce tableau:
array
3 =>
array
4 =>
array
7 => null
8 =>
array
9 => null
5 => null
6 => null
Les sorties que je reçois est:
(de la première déclaration d'écho)
<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>
(de la deuxième déclaration d'écho)
<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>
En quoi peuvent-ils différer? Tout serait traité comme une chaîne avant d'être renvoyé ... – BoltClock
J'ai fourni la fonction que j'utilise, la matrice d'entrée et la sortie pour deux cas. Dites-moi, ce n'est pas une erreur de ma part et plutôt une question conceptuelle. :) – Stoic