Concaténation constante PHP

Résolu
manuelmalin -  
 aliod -
Bonjour,

J'ai un petit souci avec les constantes de PHP ; j'ai définit plusieurs constantes :

define('_MA_CONSTANTE_1','contenu de ma constante n°1') ;
define('_MA_CONSTANTE_2','contenu de ma constante n°2') ;
define('_MA_CONSTANTE_3','contenu de ma constante n°3') ;

Maintenant j'aimerais d'après 2 variables afficher une constante bien précise :

$constante = '_MA_CONSTANTE_' ;
$numero = '2';

$contante_numero = $constante.$numero ;

echo $contante_numero ; donne : _MA_CONSTANTE_2

Comment faire pour afficher le contenu de la constante _MA_CONSTANTE_2 avec cette variable $contante_numero ?

Merci,

a+
Manu

6 réponses

  1. aliod
     
    Bonjour,
    bien que très tardive, voici la solution au premier problème

    Rappel des données du problème

    define('_MA_CONSTANTE_1','contenu de ma constante n°1') ;
    define('_MA_CONSTANTE_2','contenu de ma constante n°2') ;
    define('_MA_CONSTANTE_3','contenu de ma constante n°3') ;

    $constante = '_MA_CONSTANTE_' ;
    $numero = '2';

    obtenir la valeur d'une constante (la seconde ici) par concaténation des variables $constante et $numero

    Solution:
    utiliser la fonction php constant, soit
    $resultat = constant($constante.$numero);
    (équivalent à $resultat=("_MA_CONSTANTE_".$numero)

    //$resultat aura donc pour valeur "contenu de ma constante n°2"

    En espérant que ça serve à quelqu'un.
    Bon vent
    2
  2. Vanator
     
    Salut,

    Je recherchais la même chose que toi et je suis tombé sur ce sujet. Après une recherche plus poussée ailleurs j'ai trouvé ça : http://be.php.net/manual/fr/function.constant.php

    Il est sans doute trop tard pour toi mais comme ça les prochains qui trouveront ce sujet auront leur réponse :-)

    Bon courage.
    1
    1. Bibi
       
      Effectivement, tu as raison, ta réponse m'a été TRES utile ! Une fonction que je ne connaissais pas et que je n'oublierai pas ! :) Un GRAND merci à toi !
      0
  3. scriptiz Messages postés 1494 Statut Membre 425
     
    define('TEXT_CONST', "Bonjour les amis");
    
    $concatenation = TEXT_CONST." ici le père Noel qui vous parles !!!";
    $concatenation .= "\nHoHoHo";
    
    echo $concatenation;


    En gros tu auras compris que pour définir une constante on met bien des guillemets 'NOM_CONST' mais que pour l'appeller, on ne les mets plus sinon c'est comme si tu concaténait du texte et non le nom de la constante.

    Bonne continuation.
    0
    1. manuelmalin
       
      Salut,

      Merci pour ta réponse, mais ce n'est pas vraiment ce que j'attendais.

      Je ne suis pas sur d'avoir été très clair, en fait, en suivant mon exemple, à la fin, après la constitution de mon nom de constante contenu dans $constante_numero à l'aide des 2 variables $constante et $numero, je veux pouvoir faire :

      echo _MA_CONSTANTE_2 ;

      et avoir pour résultat : contenu de ma constante n°2

      Je suis plus clair là ? :O)

      D'avance merci, et à bientôt,
      Manu
      0
  4. scriptiz Messages postés 1494 Statut Membre 425
     
    Ah oui je n'avais pas bien compris désolée, voici qui devrait d'aider (par contre j'ai jamais essayé avec des constantes je ne pense pas que ça soit possible, mais bon tu peux aussi utiliser des simples variables ;) ) :

    Variables dynamiques :

    <?php
    $ma_variable_1 = "Variable n°1";
    $ma_variable_2 = "Variable n°2";
    $ma_variable_3 = "Variable n°3";
    
    for($i = 1; $i <= 3; $i++)
    {
    	echo "\n".${'ma_variable_'.$i}."<br />";
    }
    ?>
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. manuelmalin
     
    Oui voilà c'est ca, mais la même chose pour les constantes, c'est sur ca n'existe pas ? :'(
    0
  7. scriptiz Messages postés 1494 Statut Membre 425
     
    Aucune idée, du moins je n'en ai jamais entendu parler, et vut comment ça fonctionne je pense que ça n'existe pas, ou alors il faut procéder autrement ;)
    0
    1. manuelmalin
       
      Merci à toi, je vais procéder autrement :)

      Sinon, je cherche aussi le moyen de définir moi même mon PHPSESSID, est-ce possible ?

      Apparemment avec session_id(1234); j'affecte bien 1234 au SID mais la session ne fonctionne pas.

      a+
      Manu
      0
      1. manuelmalin > manuelmalin
         
        Oups, si en fin de compte, ca fonctionne ;)

        a+ et merci encore !!
        0