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 :

Fonction include et portée des variables objet instanciées


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de lisa.a
    Inscrit en
    Mai 2004
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 95
    Par défaut Fonction include et portée des variables objet instanciées
    j'ai des fichiers séparés toto.php et tutu.php dans lesquels je définis des classes et des variables.
    J'ai un fichier central contenu.php où je manipule ces variables

    enfin j'ai un fichier index.php qui contient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    include 'toto.php' ;
    include 'tutu.php';
    include 'contenu.php';
    et ça marche

    Maintenant si au lieu d'inclure directement contenu.php je passe par une fonction comme ci-dessous ça ne marche plus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    include 'toto.php' ;
    include 'tutu.php';
     
         function toto(){	 
    include 'contenu.php';
    		 }
    		 toto();
    incroyable ? ou très simple ? moi je ne comprends pas du tout ...

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Comportement normal, question de portée :
    Citation Envoyé par Documentation PHP
    Lorsqu'un fichier est inclus, le code le composant hérite de la portée des variables de la ligne où l'inclusion apparaît. Toutes les variables disponibles à cette ligne dans le fichier appelant seront disponibles dans le fichier appelé, à partir de ce point. Cependant, toutes les fonctions et classes définies dans le fichier inclus ont une portée globale.

  3. #3
    Membre confirmé Avatar de lisa.a
    Inscrit en
    Mai 2004
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 95
    Par défaut
    ok je crois que je comprends.
    mais du coup c'est sans issue ?

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Non, pas forcément mais ça obligerait à déclarer dans la fonction les variables de toto et tutu global ou à utiliser $GLOBALS['variable'] dans contenu. Sinon il faut se tourner vers un autre mécanisme avec ce que ça impliquerait (utiliser le(s) paramètre(s) de la fonction, un codage orienté OO, ...).

  5. #5
    Membre confirmé Avatar de lisa.a
    Inscrit en
    Mai 2004
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 95
    Par défaut
    Ah oui !! Super !! un $GLOBALS et on n'en parle plus
    formidable !
    merci
    +++

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

Discussions similaires

  1. Coloration en fonction de la portée des variables
    Par Kaamo dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 20/11/2013, 15h53
  2. [XL-2010] Appel de fonction, portée des variables
    Par PolyAmide dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/08/2011, 14h17
  3. Portée des variables: Include dans une fonction
    Par BlindeKinder dans le forum Langage
    Réponses: 9
    Dernier message: 08/02/2011, 18h45
  4. Réponses: 1
    Dernier message: 03/02/2008, 18h05
  5. Portée des variables et des fonctions
    Par Haze. dans le forum Général Python
    Réponses: 5
    Dernier message: 23/06/2007, 10h10

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