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 :

[Système] Variables globales, classe, et AMFPHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [Système] Variables globales, classe, et AMFPHP
    Bonjour à tous.

    Je vais tenter d'être claire.
    Vous allez peut être trouver basique, mais moi je bloque

    Le topo :

    J'ai un Flash qui "communique" avec la BDD en utilisant AMFPHP.
    Dans la classe chargée j'ai des méthodes, qui elles mêmes appellent des fichiers php contenant des fonctions (des biblio de fonctions) précédemment créées.
    Certains de ces fichiers possèdent des variables globales, utilisées dans les fonctions de ces même fichiers.

    Le problème :

    Ces variables globales ne "fonctionnent" plus.

    Si je schématise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    class maclasse{
    [...]
    function mafonction(){
     
    /*** Ceci se trouve normalement dans un autre fichier et est inclu ***/
    $mavariable = "Ceci est un texte.";
    function mafonction_inclue(){
    global $mavariable;
    if($mavariable) echo "Ma Variable : ".$mavariable;
    else echo "Ma Variable n'existe pas";
    }
    /*** ***/
     
    mafonction_inclue();
     
    }
    [...]
    }
    le flash appelle la méthode mafonction() grâce à amfphp
    mafonction() exécute mafonction_inclue (précédemment créé dans une biblio de fonctions, donc)

    Résultat : « Ma Variable n'existe pas »

    Un moyen consiste à modifier quelque peu les fichiers biblio en faisant passer en paramètres les variables... mais il me serait préférable de ne point y toucher.

    Est-ce un comportement normal ? Existe-t-il une solution en ne trafiquant que la classe ?

    ps : je précise, au cas où, la version PHP du serveur : 4.4.0

    Merci d'avance pour les réponses.

    Cordialement,

    Loïc
    Dernière modification par Invité ; 20/02/2008 à 16h04.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Par défaut
    Salut,

    AMHA ton problème ne vient pas d'AMFPHP (perso je trouve que c'est lent et que sa prend trop de ressources mais bon c'est une autre histoire... pi les flasheurs..), mais plutôt de la déclaration global.

    Je n'en utilise jamais des variables globales, mais je pense que tu devrais la déclarer global ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /*** Ceci se trouve normalement dans un autre fichier et est inclu ***/
    global $mavariable = "Ceci est un texte.";

    Car que se soit executer depuis amfphp ou depuis le navigateur, le process est le même.

    Sinon, si c'était mon code j'éviterais autant que faire ce peut les variables globales.

    bye

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci.

    Je pense bien que le souci ne vient pas d'amfphp.
    Déclarer comme ceci ne fonctionne pas mieux. Et dans l'absolu il ne faudrait pas y toucher (l'utilisation des globales qui n'étant pas de mon fait).
    Si dès le début c'était codé en passant pas les paramètres de fonctions, à priori il n'y aurait pas de problème.

    Mais dans ce cas peut on l'éviter (et non pas léviter) ?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Par défaut
    Bon comme je suis une brele en variables globales, je vais commencer par reposer ton probleme.

    Tu as une classe <maclasse>, avec une méthode <mafonction>.
    Cette méthode inclue un fichier <fichier_a_inclure.php>.
    Et dans ce fichier tu déclares une fonction <ma_fonction_inclue>, et une variable <mavariable> en dehors de la fonction. Variable que l'on souhaite par la suite utiliser dans <ma_fonction_inclue>.

    Si c'est correct, il y à un truc que je ne comprend pas. <fichier_a_inclure.php> est bien un fichier à ne pas modifier, un existant en somme, alors
    Comment se fait il que cela fonctionnait avant ???

    N'as tu pas oublié un fichier à inclure qui déclare les globales ?

    Sinon, si une âme charitable passe par là, c'est le moment ^^ Parceque moi je vais sécher sévère là..

    bye

  5. #5
    Invité
    Invité(e)
    Par défaut
    Cela fonctionnait avant car d'habitude le fichier inclu est inclu dans un script "normal", pas dans une classe.

    En testant (que ce soit en passant ou pas par le flash) avec l'exemple présenté (déclaration d'un texte, affichage tout con), ça ne fonctionne pas avec la classe. Donc je suppose avoir cerné l'embrouille.

    Peut être qu'il n'existe pas de solution sans modifier les fichiers inclus ?????

    EDIT : Au temps pour moi, il fallait bien déclarer les globales avant la fonction (donc dans la méthode la classe, alors que pour le reste ceci n'est semble-t-il pas nécessaire, cf exemple php sur les globales) en plus "de dedans" la fonction inclue
    Bon ça à l'air ok.

    Merci pour tout !
    Dernière modification par Invité ; 20/02/2008 à 16h15.

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

Discussions similaires

  1. [POO] class SQL en variable globale pour de la POO
    Par comode dans le forum Langage
    Réponses: 6
    Dernier message: 17/04/2009, 21h56
  2. [PHP 5.0] appel d'une variable global dans un autre fichier à partir d'une classe
    Par andry.aime dans le forum Langage
    Réponses: 1
    Dernier message: 13/01/2009, 10h31
  3. variables globales vers variables de classe
    Par Chop_chop dans le forum C++
    Réponses: 4
    Dernier message: 06/04/2007, 18h52
  4. Classe privée et variables globales
    Par mavina dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 21/04/2006, 16h03
  5. Variables globales dans une classe
    Par vanitom dans le forum C++
    Réponses: 16
    Dernier message: 14/01/2005, 15h40

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