citando costanti in php: “questo è un MY_CONSTANT”
Domanda
Voglio usare una costante in PHP, ma voglio anche ad inserirlo all'interno virgolette doppie come una variabile. È questo a tutto il possibile?
define("TESTER", "World!");
echo "Hello, TESTER";
Uscite ovviamente "Ciao, tester", ma quello che voglio veramente è qualcosa di simile:
$tester = "World!";
echo "Hello, $tester";
uscite "Ciao, mondo!".
Soluzione
Siamo spiacenti, non è il modo in cui le costanti nel lavoro PHP. È possibile inserire le variabili tra virgolette e heredocs ma non costanti.
Altri suggerimenti
Vi consiglio di utilizzare la concatenazione perché:
- Quando si utilizza una variabile in una stringa virgolette la visibilità non è buona;
- Quando si utilizza una stringa di citazioni doppio del PHP può elaborare lentamente;
- non si utilizza una costante in una stringa, perché non hanno alcun delimitatore alla php sa che cosa è la costante.
La concatenazione è la strada da percorrere.
A meno che non si desidera che il, brutto, inefficiente, modo scimmia male hokey di:
echo preg_replace("/TESTER/",TESTER,$original_content);
nessun modo, a meno che non si scrive la propria funzione di parsing della stringa
Ho trovato che quando dot-concatenazione di una costante è un problema, utilizzando sprintf per ottenere la mia stringa di solito è il modo in cui voglio andare alla fine.
In alternativa, fare
"this is " . MY_CONSTANT
o
"this is " . constant("MY_CONSTANT");