IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Une simple question de théorie


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Par défaut Une simple question de théorie.
    Bonjour,

    Une question bête, mais qui m'interpelle.

    J'ai une condition if() {;}.

    A l'intérieur de l'instruction, il y a une erreur de code, par exemple il manque un point virgule.
    Ce qui m'étonne c'est que cela déclenche une erreur PHP même si la condition if n'est pas censée être interprétée. Je pensais que le script dans ce cas ne lisait pas l'instruction.

    Aussi, j'ai constaté qu'en cliquant sur un bouton dans le couloir, la lumière s'allume.


    Pourriez-vous m'expliquer ces deux phénomènes ?

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    En fait, ton code passe d'abord par une étape d'analyse syntaxique. Ensuite il est exécuté ligne par ligne.
    Pour être exécuté, il faut savoir s'il peut l'être, d'où l'analyse syntaxique en premier lieu.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Par défaut
    Finalement c'est presque une question pour la rubrique serveur, non ?

    J'ai un peu de mal à comprendre. Qu'est-ce qu'une étape d'analyse syntaxique ?
    c'est l'interpréteur PHP installé sur le serveur, qui fait ça ?

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Quand tu demandes à charger un script PHP, l'exécutable PHP commence par regarder si la grammaire de ton script est correcte. Il n'exécute rien, aucune ligne tant qu'il ne l'a pas fait. C'est lanalyse syntaxique. Il regarde si les parenthèses vont bien par deux, pareil pour les crochets, accolades, etc. Par contre, il ne vérifie pas encore que les fonctions existent etc.

    L'analyse syntaxique correspond à la fameuse "parse error".

    Une fois que c'est fait et ok, PHP parcourt une seconde fois ton script pour l'exécuter instruction par instruction (ce qui revient plus ou moins à ligne par ligne).

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Par défaut
    Ok, j'y vois un peu plus clair, merci Yogui.

    Pour PHP fait-il cela en deux temps ? Pourquoi ne peut-il pas vérifier que la syntaxe d'une instruction est correcte juste au moment de l'exécuter, quite à déclencher une erreur à l'instruction suivante ?

  6. #6
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Parce que tous les compilateurs fonctionnent comme cela depuis des dizaines d'années
    Bon, dans le cas des langages exécutés (sans compilation réelle), cela pourrait être un peu différent. Mais bon, c'est tellement plus rapide de commencer par faire une exécution syntaxique plutôt que de tout faire d'un coup...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Une simple question
    Par Ella68 dans le forum Débuter avec Java
    Réponses: 10
    Dernier message: 30/11/2007, 14h23
  2. une simple question
    Par Ganondorf dans le forum Langage
    Réponses: 2
    Dernier message: 17/11/2007, 13h28
  3. [Forum]Une simple question à propos d'un utilisateur du forum
    Par Satch dans le forum La taverne du Club : Humour et divers
    Réponses: 76
    Dernier message: 26/07/2006, 10h56
  4. PageControl -> Une simple question
    Par Invité dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/05/2004, 09h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo