PHP est il un langage compilé ou interprété ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 août 2011, 12:18

ôO
C'est un ramassis de bêtises ce code, et non seulement il ne fera rien, mais il ne sert à rien non plus :/
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 2278 Messages

29 août 2011, 10:12

Si j'avais pensé qu'il s'agissait d'un "ramassis de bêtises" je me serais abstenu.
Loin d'être un ramassis de bêtises, ce code est la reprise de codes trouvés sur ce site dont les auteurs ne comprenaient pas les erreurs.
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.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphant du PHP | 275 Messages

29 août 2011, 11:32

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.
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)

Donc oui, il y a un tokenizer, et une forme de compilation, mais ça n'est pas un langage compilé. C'est d'ailleurs assez simple à voir : le script est parsé et "compilé" à chaque appel. Pour un langage compilé, la compilation est une étape préalable qui fournis un exécutable, le code source en lui même n'étant pas exécutable.

Mammouth du PHP | 2278 Messages

29 août 2011, 15:44

Merci de me répondre ce que je savais....
Quant à $$var : tout langage de ce nom connait les pointeurs et les passages par références (en particulier pour les fonctions)...
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphant du PHP | 275 Messages

29 août 2011, 16:33

$$var n'a rien à voir avec les pointeurs voyons, ça permet d'atteindre une variable en fonction d'un nom de symbole. Seuls les langages interprétés peuvent faire ça.