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 :

inclusion de variable par require_once (ou autre)


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 93
    Par défaut inclusion de variable par require_once (ou autre)
    Bonjour,

    Débutant en php , je me heurte à une énigme. J'ai trois morceaux de code en php inclus les uns dans les autres :
    - une page web web.php, qui fait appelle à...
    - ... une page de fonction fonction.php, qui tire ses variables de...
    - ... une page de configuration config.php.

    Dans web.php, je mets donc un require_once('fonction.php'), dans lequel à son tour se trouve require_once('config.php'). La boucle est bouclée.

    Bizarrement, je peux récupérer la valeur de mes variables définies dans le fichier config.php dans web.php, MAIS PAS dans fonction.php !!

    Voici un exemple composé de mes trois fichiers :

    web.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    	require_once('fonction.php') ;
    	test() ;
    	echo "<p>Résultat variable : ".$test."</p>" ;
    ?>
    fonction.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    	require_once('config.php') ;
    	function test() {
    		echo "<p>Résultat fonction :".$test."</p>" ;
    	}
    ?>
    config.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    	$test = "test" ;
    ?>
    Ce qui me donne le résultat suivant :

    Résultat fonction :

    Résultat variable : test
    J'ai dû louper quelque chose... de simple, a priori. Mais quoi ? Merci à / aux personne(s) qui m'aident à expliquer ce phénomène.

  2. #2
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    C'est normal, cela est du à la portée de tes variables

    Fais une recherche sur google php + portée variables

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 93
    Par défaut
    Ah ? J'aurais pas cru, car finalement, je peux les récupérer en bout de course, mais pas à l'étape intermédiaire.
    Ok, je vais voir. Merci pour la piste.

  4. #4
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    je peux les récupérer en bout de course, mais pas à l'étape intermédiaire
    C surtout que $test de la fonction appartient à la fonction et n'est pas initialisée, donc sera vide ... alors que $test appartenant au dernier incluse sera utilisable dans toute la page web.php.

    Si tu veux utiliser $test dans la fonction, il faudrait l'utiliser en argument ... d'ou le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    	require_once('fonction.php') ;
    	test($test) ;
    	echo "<p>Résultat variable : ".$test."</p>" ;
    ?>
    web.php

    ET
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    	require_once('config.php') ;
    	function test($test) {
    		echo "<p>Résultat fonction :".$test."</p>" ;
    	}
    ?>

  5. #5
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    Si tu souhaites, dans ta fonction test(), utiliser la variable définie dans config.php, il faut aller chercher dans les variables enregistrées globalement tout simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function test() {
        global $test;
        echo "<p>Résultat fonction :".$test."</p>" ;
    }

  6. #6
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour Thomas,

    Je suis d'accord avec ton global mais ça entâche le principe de la fonction, non!

    Enfin, pour moi, moins j'ai de globales mieux je me porte (jeu de mots sur porte, comme portabilité)

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

Discussions similaires

  1. Tracer les variations d'une variable par rapport à une autre
    Par aymench1985 dans le forum Mathématiques - Sciences
    Réponses: 0
    Dernier message: 21/01/2014, 21h46
  2. Somme d'une variable par modalités d'une autre
    Par ludo35 dans le forum SAS Base
    Réponses: 20
    Dernier message: 15/03/2011, 10h08
  3. appeller une variable par le contenu d'une autre
    Par Walkyrie dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/09/2010, 16h36
  4. [OllyDBG] Remplacer une variable, par une autre
    Par Shayds dans le forum x86 32-bits / 64-bits
    Réponses: 0
    Dernier message: 26/05/2010, 18h09
  5. Remplacer lettres contenues dans une variable par d'autres lettres
    Par AZzjeioafh dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 02/12/2009, 18h53

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