par
ouckileou » 03 janv. 2006, 23:31
que je fasse ++$b il ya pas de décalage en tre $a et $b
et si je fait $b++ il ya un décalage ver l'arriere.
cela tient simplement à la différence entre ces deux opérateurs :
comme expliqué dans la doc, ++$a incrémente $a et renvoie $a, $a++ renvoie $a puis l'incrémente (en arrière plan en quelque sorte)
Donc c'est tout à faire normal, avec ces 2 lignes :
$a = $_SESSION['a']++;
$d = ++$_SESSION['b'];
voici ce qui se passe :
- renvoie dans $a $_SESSION['a'], qui est vide, puis incrémente $_SESSION['a] qui vaut donc 0
- incrémente $_SESSION['b'], qui vaut donc 0, puis la renvoie dans $b
- renvoie dans $a $_SESSION['a'], qui vaut 0, puis incrémente $_SESSION['a] qui vaut donc 2
- incrémente $_SESSION['b'], qui vaut donc 1, puis la renvoie dans $b
Le décalage vient donc du fait que pour $a tu l'affiches avant incrémentation, alors que tu affiches $b après incrémentation.
Est-ce que c'est plus clair ?
Je reconnais que ça embrouille un peu parfois (d'ailleurs si j'ai dit une bêtise corrigez moi

)