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 :

Redefinir une constante [PHP 5.0]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de stomerfull
    Inscrit en
    Septembre 2005
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 307
    Par défaut Redefinir une constante
    Bonjour ,

    Je sais qu'une constante est non redifinissable sinon elle n'est pas une constante

    Mais ma situation m'oblige à redefinir une constante mais sans résultat :
    le code :

    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
    foreach($member as $item) {
        $vl = @doStuff($item);
        if ($vl->langMailUser =='fr') {          
     
                 include_once('langs/fr-lang.php');
     
          } else if ($vl->langMailUser =='en') {      
     
                  include_once('langs/en-lang.php');
     
          } else {                       
     
                   include_once('langs/it-lang.php');
           }
     
           print TXT_TITRE_A;
     
    }
    Dans les fichiers 'langs/fr-lang.php,langs/en-lang.php et 'langs/it-lang.php

    je définie la constante pour les trois langues :
    FR :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!defined('TXT_TITRE_A')) define('TXT_TITRE_A', 'blabla');
    EN :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!defined('TXT_TITRE_A')) define('TXT_TITRE_A', 'blibli');
    IT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!defined('TXT_TITRE_A')) define('TXT_TITRE_A', 'blublu');
    mais ça maffiche toujour blabla alors que $vl->langMailUser returne bien les 3 langues

    jai trouvé ça qui permet de redefinir une constante http://www.php.net/manual/en/functio...t-redefine.php mais ça marche pas

    merci d'avance pour votre aide

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    c'est une voie sans issue que de chercher à redéfinir une constante.
    Il est préférable de se pencher sur son architecture que sur la cuisine que permet de faire la librairie runkit.

    Dans ton cas et d'après tes explications, tu ne la redéfinies pas, tu la définies.
    Pose un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print_r($vl->langMailUser);
    et vérifie bien que tu récupères bien la valeur souhaitée.

  3. #3
    Membre éclairé Avatar de stomerfull
    Inscrit en
    Septembre 2005
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 307
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print_r($vl->langMailUser);
    n'affiche pas un tableau mais affiche la langue choisi par les membres c'est a dire fr, en ou it et jai bien ces valeurs avec mais j'arrive pas afficher la constante en fonction de la langue

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    ok,

    ne reste plus qu'à tester ceci dans tes fichiers de langues
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ( ! defined('TXT_TITRE_A')) 
        define('TXT_TITRE_A', 'blabla');
    else
        echo 'déjà définie';

  5. #5
    Membre éclairé Avatar de stomerfull
    Inscrit en
    Septembre 2005
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 307
    Par défaut
    pour la première langue FR

    ça affiche la constante dans cette langue ie "blabla"

    pour les autres langues ça afficher
    déjà définie blabla

    fr blabla
    it déjà définie blabla
    en déjà définie blabla
    fr déjà définie blabla

    Donc la constante est déjà défini pour la première paramètre et ne pourra plus etre mis à jour :/

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    oui, c'est ce qui me semblait vu que tu es dans un foreach. C'est ton architecture qui est à revoir (les constantes ne sont pas des plus pratiques pour gérer l'internationalisation).
    Explique un peu comment tu gères l'internationalisation.
    Tu mélanges les langues dans tes interfaces ?

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

Discussions similaires

  1. [Debutant]Definition d'une constante.
    Par GETah dans le forum Langage
    Réponses: 6
    Dernier message: 18/05/2005, 19h16
  2. Inclusion de fichiers et portée d'une constante
    Par Djakisback dans le forum C
    Réponses: 14
    Dernier message: 13/05/2005, 13h19
  3. [Debutant] Redefinir une méthode
    Par joquetino dans le forum Langage
    Réponses: 7
    Dernier message: 29/09/2004, 10h07
  4. ajout d'une constante dans un select
    Par Shabata dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/07/2004, 18h24
  5. Partage d'une constante entre 2 fichiers en C
    Par elsargento dans le forum C
    Réponses: 6
    Dernier message: 29/09/2003, 22h17

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