[PHP]Remplacer une constante par sa valeur dans une chaîne ""

Remplacer une constante par sa valeur dans une chaîne "" [PHP] - PHP - Programmation

Marsh Posté le 07-08-2006 à 09:15:25    

Salut,
 
Je pense que mon titre n'est pas très explicite, donc voici ma question.
 
Il est très facile en PHP de remplacer les variables par leurs valeur dans les "double quoted strings" (je ne sais pas comment on dit en français)
 
par exemple:
 

Code :
  1. $hello = 'Bonjour';
  2. echo "$hello Monsieur";


 
Mais comment pourraisje faire avec une constante du type:
 

Code :
  1. define('HELLO', 'Bonjour');
  2. echo HELLO . ' Monsieur';


Mais sans passer parcette concaténation, ais plutot en utilisant une chaîne unique comme dans le cas d'un variable standard. C'est possible ou pas?
 

Reply

Marsh Posté le 07-08-2006 à 09:15:25   

Reply

Marsh Posté le 07-08-2006 à 09:58:22    

Quel en serait l'interêt?

Reply

Marsh Posté le 07-08-2006 à 10:01:39    

Bah l'intérêt pour moi serait de pouvoir faire un
 

Code :
  1. echo "HELLO Monsieur";


 
au lieu de devoir faire un  
 

Code :
  1. echo HELLO . " Monsieur";


 
C'est à dire d'éviter les concaténations multiples, qui sont d'une part fastidieuses à taper, moins lisibes, et peut être moins efficaces également (quoique, je me méfie avec PHP)
 
Edit: enfin, c'ets surtout chiant lorsqu'il y a de multiples remplacement à faire au sein de la même chaîne, lors du retrieve d'un enregistrement de BdD ar exemple.


Message édité par Yoyo@ le 07-08-2006 à 10:04:13
Reply

Marsh Posté le 07-08-2006 à 10:06:08    

t'es un obsédé de la perf ma parole [:mlc]
 
regarde du coté de sprintf ça pourrait t'aider


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 07-08-2006 à 10:11:05    

Sh@rdar a écrit :

t'es un obsédé de la perf ma parole [:mlc]
 
regarde du coté de sprintf ça pourrait t'aider


 
Lol!
 
Mais non, j'ai bien mis le coté perf en tout dernier, sachant que je m'en "tape" ici (mais c'est toujours ça de pris si c'est le cas)
 
Je cherche vraiment de la lisibilité et de la simplicité.
 
En fait, dans mon "script", je fais l'inclusion d'un config.php qui définit une multitude de constantes qui sont utilisées par la suite (genre un TimeZone, des identifiants MySQL, etc). Je préfère passer par des constantes pour être certin que personne ne les redéfinit par la suite (ni même moi par erreur)
 
Maintenant, s'il n'y a pas moyen de me servir de ces constantes aussi simplement qu'avec des variables,a lors tant pis, je vais recommencer à utiliser des variables.
 
Utiliser un sprintf est encore moins lisible et pratique (appel de fonction, plusieurs paramètres, etc...)

Reply

Marsh Posté le 07-08-2006 à 10:18:54    

c'est un peu le problème des constantes, ce ne sont pas des variables...


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 07-08-2006 à 10:23:16    

Oui, c'est ce qu'il me semble, d'un point de vue utilisateur, ce ne sont pas des variables.
 
Par contre, ce qui est malheureux, c'est que du point de vue implémentation (et donc efficacité), ça reste des variables (les constantes PHP sont impélmetnées en interne comme des variables), cad que contrairement à d'uatres langages tels que le C, on ne gagne strictement rien en efficacité.
 
PS: Chui vraiment désolé de vous saoûler avec mes détails "low level", mais il se trouve que mon background, c'est plus des langages de bas niveau (ASM, C/C++...) et je ne suis vraiment pas habitué à travailler en PHP (c'est même difficile pour moi, car je cherche trop à comprendre les choses, et finalement, ça me complique la tâche, car bien entendu, l'implementation intenre du langage est super alambiquée, pour rendre justement ce langage simle à utiliser (une qualité que je lui reconnais)


Message édité par Yoyo@ le 07-08-2006 à 10:23:57
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed