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 des variables, je comprends pas [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de ZeFiF
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 303
    Points : 486
    Points
    486
    Par défaut Portée des variables, je comprends pas
    Bonjour à toutes & à tous.

    Je vous prie d'excuser le coté "newbie" de la question. J'ai besoin de vos conseils car je n'y arrive plus.
    J'ai un fonctionnement bizarre sur la portée des variables. J'ai du faire une bêtise car auparavant cela fonctionnait bien. Bref.

    J'ai un script "index.php" qui contient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    require_once ("../commun/fonctions.php");	
    require_once ("../commun/mysql.php");
    verif_server ();
    les chemins sont ok.

    Dans "fonctions.php" j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    getparam ();
     
    function getparam()
    {
    global $ze_servername;
    $ze_servername =  $_SERVER['SERVER_NAME'];
    }
    Dans "mysql.php" j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function verif_server()
    {
    echo $ze_servername;
    }
    Cette variable est connue par "index.php" mais pas par "mysql.php".
    Cela pose donc un problème.

    Qu'est ce que je n'ai pas compris ?
    Toute aide sera précieuse...
    Merci,
    Cordialement,
    Philippe

  2. #2
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    Bonjour,

    Essaie de rajouter ceci dans mysql.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function verif_server()
    {
    global $ze_servername;
    echo $ze_servername;
    }
    Je n'utilise jamais ce mot clé mais logiquement 'global' te sers à spécifier que tu utilises la variable globale $ze_servername. Si tu ne le spécifies pas alors $ze_servername correspondra à une variable locale à ta fonction.

  3. #3
    Membre confirmé Avatar de ZeFiF
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 303
    Points : 486
    Points
    486
    Par défaut
    Testé et cela fonctionne dorénavant.

    Cela me laisse à penser que j'avais compris le fonctionnement à l'envers,
    en tout cas pour ce qui est des appels aux fonctions.

    Merci pour ton aide !

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Portée des variables
    Une variable définie à l'extérieur d'une fonction n'est accessible dans la fonction (et vice-versa) que si elle est définie comme globale dans la fonction.
    Donc pour accéder à une variable définie dans une fonction dans une autre fonction, il faut la définir comme globale dans les deux fonctions (ou la renvoyer en retour de la 1ere fonction et l'injecter comme paramètre de la 2e fonction)
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 12/08/2007, 13h29
  2. [FLASH MX] Portée des variables ???
    Par mic79 dans le forum Flash
    Réponses: 2
    Dernier message: 08/02/2005, 10h21
  3. Portée des variables vbscript vers ASP
    Par Immobilis dans le forum ASP
    Réponses: 3
    Dernier message: 03/11/2004, 10h14
  4. [XSL]Problème de portée des variables
    Par djulesp dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/09/2004, 10h34
  5. [Portée] portée des variables
    Par parksto dans le forum Langage
    Réponses: 7
    Dernier message: 09/05/2004, 21h05

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