Concaténation constante PHP

Résolu/Fermé
manuelmalin - 26 déc. 2008 à 21:43
 aliod - 1 sept. 2010 à 09:49
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

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
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
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
scriptiz
Messages postés
1420
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 mai 2013
420
26 déc. 2008 à 22:58
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
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
scriptiz
Messages postés
1420
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 mai 2013
420
27 déc. 2008 à 16:56
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Oui voilà c'est ca, mais la même chose pour les constantes, c'est sur ca n'existe pas ? :'(
0
scriptiz
Messages postés
1420
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 mai 2013
420
27 déc. 2008 à 19:11
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
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
manuelmalin > manuelmalin
27 déc. 2008 à 21:59
Oups, si en fin de compte, ca fonctionne ;)

a+ et merci encore !!
0