2012-06-10 19 views
5

¿Cómo puedo finalizar un nombre de variable en una cadena sin usar espacio ni ningún otro carácter especial?Cómo finalizar un nombre de variable en cadena sin espacio

exampel ¿hay algo que pueda poner entre $num y st a la salida 1st en lugar de 1 st

$num = 1; 
echo "$num st"; 

Sin utilizar el opperator punto para concatenar

+1

Sí, nunca se debe utilizar la concatenación ... incluso si se le da la salida que necesita, sólo que es tan mal y el mal –

+0

@ MarkBaker ¿Hablas en serio o eres sarcástico? – Jeroen

+0

Quizás tenía que ser más sarcástico, ya que claramente no era obvio que estaba siendo tan –

Respuesta

8

Ajustar el nombre de la variable wi th llaves

$num = 1; 
echo "${num}st"; 

O utilice printf sintaxis en lugar de una simple interpolación:

$num = 1; 
printf("%dst", $num); 
+0

Pensé que tenía que escribir '" {$ num} st "'. Supongo que aprendes algo nuevo todos los días :) –

+0

@RobinCastlin, si escribes '{$ num} st', obtendrás' {1} st' como salida, no '1st'. –

+0

¡Gracias por la respuesta! Esto ayudó a limpiar mi código – nist

0

Uso de la concatenación de . personaje:

echo $num . 'st'; 
+0

La razón por la que hice esta pregunta fue porque la concatenación es un operador bastante costoso y el código se vuelve difícil de leer, pero gracias de todos modos – nist

+3

Eso simplemente no es cierto, la concatenación es en realidad un poco más rápida: http://stackoverflow.com/questions/13620/ speed-difference-in-usage-inline-strings-vs-concatenation-in-php5 (aunque no debe tomar una decisión basada en esa diferencia de velocidad, es insignificante) – Jeroen

+0

¿Ha medido realmente la diferencia de costo entre el uso de concatenación y otro opciones tales como las publicadas por Quentin ... a menos que esté hablando de concatenar un número significativo de cadenas que son todos varios miles de bytes de longitud, es casi inconmensurable –

Cuestiones relacionadas