ôO
C'est un ramassis de bêtises ce code, et non seulement il ne fera rien, mais il ne sert à rien non plus :/
La variable n'est réellement utilisée que lorsque nombre=2, donc c'est uniquement à ce moment là que php cherche dans le contexte courant une variable nommée $u. C'est une particularité des langages interprétés : les variables ne sont pas "juste" des adresses mémoires, elles sont référencées dans un contexte, ce qui permet de ne tester leur existence qu'au moment où elles sont utilisées (et donne la possibilité de faire des choses du style $$toto)Ce qui me semble passionant, c'est que lors de la première passe, l'erreur variable non définie n'est pas détectée alors q'elle l'est si on saisit la valeur 2...
Alors ça interroge sur le mode de fonctionnement de l'analyseur de PHP.