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 d'initialisation avec des includes


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Par défaut Fonction d'initialisation avec des includes
    Hello !

    Je cherche à factoriser du code récurent, notamment en début de page. Ainsi, je me retrouve toujours avec un certain nombre d'instructions qui sont communes à beaucoup de page : session_start, s'agit-il d'un compte admin, inclusion des fichiers, ...

    Ce que j'aimerai est créer une fonction fct_init(), qui prend en paramètre, notamment, un array de path de fichiers à inclure.

    Mon problème est que, lorsque je les inclus dans la fonction, ils ne sont plus disponible après l'appel de init()...

    Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //debut de page
     
    //toto.php contient un tableau $tab
    $requires = ['toto.php', 'titi.php'];
     
    fct_init(true, true, $requires);
     
    echo $tab[0]; //===> erreur, ce tableau est inconnu
    Avez-vous une solution simple et propre ?

    Merci

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    montre ta fonction fct_init

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Par défaut
    ça ressemble à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function fct_init($useSession, $isAdmin, $requires)
    {
       if($useSession)
          session_start();
     
      if($isAdmin)
         ...
     
       for($i=0; $i<count($requires); $i++)
          require($requires[$i]);
    }

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    la porté des variables s’arrête a ta fonction

    a rajouter à la fin de ta fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach(get_defined_vars() as $name => $value) {
        $GLOBALS[$name] = $value;
    }


    ps : pour parcourir un array c'est foreach, pas for (dans ton cas) de plus ton for c'est pas correct

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Par défaut
    Merci pour ta réponse (désolé d'avoir mis du temps à répondre ...)

    Ça à l'air de fonctionner

    Mais j'aimerai essayer de comprendre l'impact de $GLOBALS sur mon code, si le fait d'utiliser cette fct_init() qui utilise ce $GLOBALS partout dans mon code (je n'ai pas encore fait toutes les modifs) risque de mettre la pagaille dans mon code déjà installé ...

    Quel serait le risque potentiel ?

    Par exemple, est-ce que les variables seront public uniquement pour la page en cours ou pour chaque page (=> risque d'écrasement par exemple) ?

    Y aurai t-il une autre solution moins "risquée" ?

    Merci

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/03/2008, 17h40
  2. Problème avec des #include imbriqués
    Par Ph.denis dans le forum C++
    Réponses: 6
    Dernier message: 16/03/2008, 10h15
  3. [SHTML] élément(s) restant(s) avec des include
    Par crokignol dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 14/05/2007, 09h13
  4. changer un textarea par fonction JS : texte avec des sauts de ligne
    Par agrotic dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/10/2006, 14h08
  5. problème avec des include
    Par nixonne dans le forum Langage
    Réponses: 4
    Dernier message: 22/08/2006, 17h12

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