2012-06-10 13 views
5

Come posso terminare un nome di variabile in una stringa senza utilizzare spazio o altri caratteri speciali?Come terminare un nome di variabile nella stringa senza spazio

exampel c'è qualcosa che posso mettere tra $num e st all'uscita 1st invece di 1 st

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

Senza utilizzare l'opperator punto per concatination

+1

Sì, non si deve mai usare la concatenazione ... anche se ti dà l'output si ha bisogno, è solo così male e sbagliato –

+0

@ MarkBaker Sei serio o sarcastico ?? – Jeroen

+0

Forse avevo bisogno di essere più sarcastico, perché chiaramente non era ovvio che stavo così così –

risposta

8

Avvolgere il nome della variabile wi th bretelle.

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

Oppure utilizzare la sintassi printf invece di semplice interpolazione:

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

Anche se dovevi digitare '" {$ num} st "'. Immagino che impari qualcosa di nuovo ogni giorno :) –

+0

@RobinCastlin, Se digiti '{$ num} st', ottieni' {1} st 'come output, non '1st'. –

+0

Grazie per la risposta! Questo ha aiutato a ripulire il mio codice – nist

0

Utilizzare la concatenazione . carattere:

echo $num . 'st'; 
+0

Il motivo per cui ho posto questa domanda è perché la concatinazione è un opperatore piuttosto costoso e il codice diventa difficile da leggere ma grazie comunque – nist

+3

Questo semplicemente non è vero, la concatenazione è in realtà leggermente più veloce: http://stackoverflow.com/questions/13620/ differenza di velocità-in-uso-inline-stringhe-vs-concatenazione-in-php5 (sebbene non si dovrebbe prendere una decisione basata su tale differenza di velocità, è trascurabile) – Jeroen

+0

Hai effettivamente misurato la differenza di costo tra l'utilizzo della concatenazione e altri opzioni come quelle pubblicate da Quentin ... a meno che tu non stia parlando di concatenare un numero significativo di stringhe che sono tutte diverse migliaia di byte di lunghezza, è quasi incommensurabile –

Problemi correlati