Foros del Web » Programando para Internet » PHP »

Concadenar Nombre de Constante con Variable

Estas en el tema de Concadenar Nombre de Constante con Variable en el foro de PHP en Foros del Web. Hola a todos, Estoy implementando multilenguaje en mi sitio web y lo que me gustaria hacer es utilizar constantes multiidioma una debajo de la otra, ...
  #1 (permalink)  
Antiguo 08/09/2013, 09:33
 
Fecha de Ingreso: abril-2010
Ubicación: Ping: BSAS - Arg
Mensajes: 791
Antigüedad: 14 años
Puntos: 25
Concadenar Nombre de Constante con Variable

Hola a todos,

Estoy implementando multilenguaje en mi sitio web y lo que me gustaria hacer es utilizar constantes multiidioma una debajo de la otra, esto facilita muchisimo la traducción y se entiende el contexto, en ves de invocar archivos por separado, por ejemplo:

Código PHP:
define("ES_MANZANA""Manzana");
define("EN_MANZANA""Apple");
define("RU_MANZANA""яблоко"); 
Entonces mi idea es que al invocarlo, pueda cambiar el prefijo de la constante, tipo esta "locura":

Código PHP:

echo $idioma._MANZANA
Existe alguna forma de hacerlo o me voy a tener que resignar a hacerlo en includes distintos?

Gracias :)
  #2 (permalink)  
Antiguo 08/09/2013, 09:40
Avatar de macmaikel  
Fecha de Ingreso: agosto-2013
Mensajes: 25
Antigüedad: 10 años, 8 meses
Puntos: 5
Respuesta: Concadenar Nombre de Constante con Variable

claro que puedes!! :)

$idioma.'_MANZANA'

y cuando quieras cambiar de idoma te haces una funcion que sea cambiarIdioma que reciba 2 parametros, por ejemplo ES_MANZANA y EN,haga un explode y te devuelva EN_MANZANA


Por lo que entendi creo que te referias a esto, si no dimelo y miramos otra solucion

Saludos
  #3 (permalink)  
Antiguo 08/09/2013, 11:28
 
Fecha de Ingreso: abril-2010
Ubicación: Ping: BSAS - Arg
Mensajes: 791
Antigüedad: 14 años
Puntos: 25
Respuesta: Concadenar Nombre de Constante con Variable

Cita:
Iniciado por macmaikel Ver Mensaje
claro que puedes!! :)

$idioma.'_MANZANA'

y cuando quieras cambiar de idoma te haces una funcion que sea cambiarIdioma que reciba 2 parametros, por ejemplo ES_MANZANA y EN,haga un explode y te devuelva EN_MANZANA


Por lo que entendi creo que te referias a esto, si no dimelo y miramos otra solucion

Saludos
No en realidad me referia a hacer algo así:

Código PHP:
<?php

define
("ES_MANZANA""Manzana"); 
define("EN_MANZANA""Apple"); 
define("RU_MANZANA""яблоко"); 

$idioma "RU";

echo 
$idioma.'_MANZANA';


?>
Y que en este caso me devuelva "яблоко".

PD: No funciona lo que puse... XD
  #4 (permalink)  
Antiguo 08/09/2013, 11:54
Avatar de macmaikel  
Fecha de Ingreso: agosto-2013
Mensajes: 25
Antigüedad: 10 años, 8 meses
Puntos: 5
Respuesta: Concadenar Nombre de Constante con Variable

vale ya te entendi ;)

Mas facil aun

Código PHP:
$palabra=$idioma.'_MANZANA';
echo $
$palabra
  #5 (permalink)  
Antiguo 08/09/2013, 16:58
 
Fecha de Ingreso: abril-2010
Ubicación: Ping: BSAS - Arg
Mensajes: 791
Antigüedad: 14 años
Puntos: 25
Respuesta: Concadenar Nombre de Constante con Variable

Cita:
Iniciado por macmaikel Ver Mensaje
vale ya te entendi ;)

Mas facil aun

Código PHP:
$palabra=$idioma.'_MANZANA';
echo $
$palabra
No funciona de esa forma
  #6 (permalink)  
Antiguo 08/09/2013, 17:01
Avatar de macmaikel  
Fecha de Ingreso: agosto-2013
Mensajes: 25
Antigüedad: 10 años, 8 meses
Puntos: 5
Respuesta: Concadenar Nombre de Constante con Variable

Cita:
Iniciado por dezagus Ver Mensaje
No funciona de esa forma

Pues yo lo he probado y funciona perfectamente, te has fijado que son 2 $ y no 1 no?
  #7 (permalink)  
Antiguo 08/09/2013, 17:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Concadenar Nombre de Constante con Variable

El problema es que se tratan de constantes, no de variables, por eso el hack de variables-variables no va bien.

En dado caso se debe usar constant() así:
Código PHP:
Ver original
  1. define("ES_MANZANA", "Manzana");
  2. define("EN_MANZANA", "Apple");
  3. define("RU_MANZANA", "яблоко");  
  4.  
  5. $key = 'ES';
  6. $const = "{$key}_MANZANA";
  7.  
  8. echo constant($const); // Manzana
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 08/09/2013, 17:51
 
Fecha de Ingreso: abril-2010
Ubicación: Ping: BSAS - Arg
Mensajes: 791
Antigüedad: 14 años
Puntos: 25
Respuesta: Concadenar Nombre de Constante con Variable

Cita:
Iniciado por macmaikel Ver Mensaje
Pues yo lo he probado y funciona perfectamente, te has fijado que son 2 $ y no 1 no?
Si he probado, pero no me resultó. Desconosco porqué, aqui como lo probé:

Código PHP:
<?php

define
("ES_MANZANA""Manzana");

define("EN_MANZANA""Apple");

define("RU_MANZANA""??????");  

 

$idioma 'EN';
$palabra=$idioma.'_MANZANA';
echo $
$palabra

?>
Lo probé con UTF-8. ¡Gracias!

Cita:
Iniciado por pateketrueke Ver Mensaje
El problema es que se tratan de constantes, no de variables, por eso el hack de variables-variables no va bien.

En dado caso se debe usar constant() así:
Código PHP:
Ver original
  1. define("ES_MANZANA", "Manzana");
  2. define("EN_MANZANA", "Apple");
  3. define("RU_MANZANA", "яблоко");  
  4.  
  5. $key = 'ES';
  6. $const = "{$key}_MANZANA";
  7.  
  8. echo constant($const); // Manzana
Usando este método si me salió. ¡Mil gracias!

Etiquetas: constante, nombre, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:27.