Variables dentro de cadenas en PHP

En PHP se puede decir que existen 3 tipos de valores, los que se asignan a una variable normal del tipo $variable, los asignados a un array $array[‘variable] o los que están dentro de una clase $clase->variable. De estos podemos escribir sin ningún tipo de problema dentro de una cadena en PHP los primeros y los terceros, los segundos hay que hacer una nomenclatura especial, pongamos un ejemplo:
Estaría correcto poner:
echo “variable $variable dentro de una cadena en php”;
echo “variable $clase->variable dentro de otra cadena en php”;
Y para los valores dentro de un array:
echo “variable “.$array[‘variable].” dentro de otra cadena en php”;
Nótese que los dos primeros son sólo válidos si la cadena va entre comillas dobles, entre comillas simples esto daría un error. Las variables dentro de las cadenas pueden llevar delante del símbolo $ cualquier carácter y detrás cualquier símbolo (no están admitidos ni letras, ni números, ni guiones medios y bajos) , por ejemplo:
echo “variable$clase->variable dentro de otra cadena en php”;
pero no
echo “variable $clase->variable dentro de otra cadena en php”;
La siguiente sintaxis sólo es valida cuando la cadena está entre comillas dobles
$cadena = "esto es una variable normal $variable";
$cadena = "esto es una variable dentro de un objeto $objeto->variable";
$cadena = "esto es una variable dentro de un array {$array['variable']}";
Lo que se suele hacer en muchos casos es encerrar las variables entre comillas, cuando realmente no es necesario según lo que acabamos de ver. Para un objeto dentro de un objeto no lo he probado supongo que valga encerrarlo entre corchetes como los arrays.

Comentarios

Anónimo ha dicho que…
Para dentro de un array usa llaves, mejor:

"variable {$array['variable']} dentro de otra cadena en php"
Reynier ha dicho que…
Muy cierto!!! muchas gracias por el aporte al post.