citando constantes en PHP: “este es un MY_CONSTANT”
Pregunta
Quiero utilizar una constante en PHP, pero también quiero ponerlo entre comillas dobles como una variable. Es en absoluto posible?
define("TESTER", "World!");
echo "Hello, TESTER";
obviamente da salida a "Hola, TESTER", pero lo que realmente quiero es algo como:
$tester = "World!";
echo "Hello, $tester";
salidas "Hola, mundo!".
Solución
Lo siento, eso no es la forma de trabajo constantes en PHP. Usted puede poner las variables entre comillas dobles y heredocs pero no constantes.
Otros consejos
Te recomiendo usar la concatenación ya que:
- Cuando se utiliza una variable en una cadena entre comillas dobles su visibilidad no es buena;
- Cuando se utiliza una cadena entre comillas dobles del PHP puede procesar lentamente;
- No utilizar una constante en una cadena, porque no tienen ningún delimitador para el php sabe lo que es la constante.
La concatenación es el camino a seguir.
A menos que usted desea que la forma hokey, desagradable, ineficiente, mal mono de:
echo preg_replace("/TESTER/",TESTER,$original_content);
ninguna manera, a menos que usted escribe su propia función de análisis de cadenas
He encontrado que cuando las punto-concatenación de una constante es un problema, usando sprintf para conseguir mi cadena es por lo general la forma en que quiero ir al final.
Alternativamente, hacer
"this is " . MY_CONSTANT
o
"this is " . constant("MY_CONSTANT");