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 :

Portée de variable dans un include


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Portée de variable dans un include
    Bonjour,

    Je croyais savoir développer en PHP et je viens de buter sur un problème qui me fait me demander si je ne vais pas retourner l'école... Soupir...

    Si une bonne âme pouvait me donner une piste...

    Le problème est né en voulant "bricoler" Joomla 1.5. Cette nouvelle version ayant très peu de composants compatibles, je me suis résolu à fabriquer moi-même mon formulaire de contact. Je me permet de poser mon problème ici car je voudrais être sûr de ne pas me tromper en PHP avant d'incriminer Joomla. Mon problème est donc bien un problème de syntaxe PHP.

    Je travaille dans une page appelée contact.php.
    Au début de cette page, je met le code suivant :

    <?php
    include("php/maclasse.php");
    $D->new data();
    ...
    ?>


    Plus loin, dans le code HTML de la page, j'entre le code complet d'un formulaire via un autre include :

    <?php
    include("mon_formulaire.php";
    ?>


    A l'intérieur de mon_formulaire.php, je cherche à réutiliser l'objet $D. Il n'est pas reconnu. Idem si je crée n'importe quelle autre variable dans maclasse.php (en dehors d'une fonction) et je que cherche à la relire dans mon_formulaire.php

    Alors je me pose la question suivante :
    include est une fonction. Une variable est locale à une fonction. Dois-je conclure que les variables d'un fichier appelé par un include sont locales à ce fichier ? Pourtant j'ai même essayé de forcer le passage en ajoutant global $mavariable mais rien à faire.

    J'étais pourtant persuadé que la fonction include se contentait d'injecter du code dans un fichier. Les sites que je développe sont tous faits ainsi, via des include. J'ai toujours un fichier de classe qui contient des méthodes. Je l'appelle par include dans ma page principale, je crée mes objets depuis la page principale, et je les affiche dans n'importe lequel des morceaux appelés par include... Donc je ne comprends plus rien à rien...

    Mon REGISTER_GLOBALS est sur ON...

    J'aurais besoin d'une petite piqure de rappel histoire de vérifier si mes principes de base sont corrects.

    S'il est possible de travailler d'un include à l'autre, alors c'est que le composant Joomla que j'utilise pour permettre des include dans le code, me joue des tours...

    Merci d'avance pour toute explication

  2. #2
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    Lorsque tu utilises un include() c'est juste comme si tu prolongeais ta page php... un ajout de code à la suite du code déjà présent sur la page.

    A une différence près le cas de l'include dans un fonction :

    Citation Envoyé par php.net
    Si l'inclusion intervient à l'intérieure d'une fonction, le code inclus sera alors considéré comme faisant partie de la fonction. Cela modifie donc le contexte de variables accessibles.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    J'ai exactement le même problème et je tombe un peu des nues. Moi aussi je croyais savoir développer en PhP mais là... je coince :s

    As-tu trouvé la cause de ton erreur ?

Discussions similaires

  1. Porté de variable dans un try except
    Par japey dans le forum Général Python
    Réponses: 4
    Dernier message: 23/05/2007, 12h55
  2. [Tableaux] Transmettre une variable dans un "include" ?
    Par seebastien dans le forum Langage
    Réponses: 2
    Dernier message: 06/05/2007, 10h24
  3. Portée de variable dans différents projets
    Par beb30 dans le forum MFC
    Réponses: 5
    Dernier message: 03/07/2006, 14h31
  4. problème de visibilité des variables dans un include
    Par d1g-2-d1g dans le forum Langage
    Réponses: 6
    Dernier message: 28/11/2005, 09h35
  5. [EasyPHP] problème de visibilité des variable dans les includes
    Par d1g-2-d1g dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 23/10/2005, 01h55

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