2010-04-03 12 views
5

$ bookA = "123"; $ crack = "A";PHP - Variable dentro de la variable?

quiero hacer algo similar a esto:

echo $book$crack; 

tal que la salida es .

¿Cuál es la sintaxis correcta para el comando echo?

Gracias.

+0

leído que decir de gama utilizan –

+0

se downvoted Cada una respuesta única a esta pregunta. ¿¿Por qué?? – Josh

+0

Posible duplicado de [Nombres de variables dinámicas en PHP] (http://stackoverflow.com/questions/9257505/dynamic-variable-names-in-php) –

Respuesta

3
$varname = 'book'.$crack; 
echo $$varname; 
5

Estos son los llamados variable variables, pero debería utilizar arrays lugar.

+1

¿Por qué dices que debería usar matrices, cuando no explicamos por qué? él tiene que hacerlo de esta manera. Tal vez los datos provienen de la fuente de la que no tiene control. Las matrices son completamente irrelevantes para la pregunta. –

+0

Porque las matrices tienen más características (como ser fáciles de iterar) y son mucho más legibles en el código. – Quentin

+1

"Tal vez los datos provienen de la fuente de la que no tiene control". - porque evaluar los datos de terceros es una práctica terrible. Los datos de terceros nunca deben interactuar con nombres reales de variables/funciones/lo que sea, la única forma posible de interacción es trabajar con datos. – zerkms

9
echo ${"book" . $crack}; 
+0

Agradable. Aprendí algo nuevo hoy. – zaf

2

Esto funcionará:

$bookA = "123"; 
$crack = "A"; 
$var = "book$crack"; 
echo $$var; 
+0

Creo que te refieres a 'echo $$ var;'. –

+0

Tienes razón, gracias @FelixKling! – Josh

3

Es posible que desee utilizar una matriz asociativa.

Por ejemplo:

$book = array(); 
$book["A"] = "Some Book"; 
$crack = "A"; 

//Later 
echo $book[$crack]; 
+3

El uso de '" 'y' "' en lugar de '" 'puede provocar errores de análisis extraños;) – Progman

+0

Corregido eso, lo siento. No me di cuenta de que esos se escabulleron allí.: P –