Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/01/2010, 18:49
Avatar de Acron_0248
Acron_0248
 
Fecha de Ingreso: junio-2005
Ubicación: 127.0.0.1
Mensajes: 1.648
Antigüedad: 18 años, 10 meses
Puntos: 18
Respuesta: diferencia entre sintaxis

Las llaves se utilizan para indicar específicamente dónde termina el nombre de la variable.

PHP, al conseguir el signo de dólar, busca tomar tantos caracteres como sea posible para formar un nombre de variable válido. Esto no es un problema en la mayoría de los casos hasta que te ves tratando de hacer echo en variables dentro de cadenas de texto.

En el manual de php sobre cadenas de texto y sintáxis conseguirás ejemplos que te ayudarán a entender mejor la idea del uso de las llaves, este es uno de ellos:

Código PHP:
<?php

$beer 
'Heineken';
echo 
"$beer's taste is great"// works; "'" is an invalid character for variable names
echo "He drank some $beers";   // won't work; 's' is a valid character for variable names but the variable is "$beer"
echo "He drank some ${beer}s"// works
echo "He drank some {$beer}s"// works

?>
La forma más simple de notar el valor de usar las llaves lo ves en el segundo echo sobre todo, debido a que php tomará tantos caracteres como le sea posible luego del dólar, $beers es interpretado como una variable completa, es decir, el motor realmente no es lo suficientemente inteligente para saber que te refieres a $beer (una variable definida previamente) seguido de una "s" que nada tiene que ver con la variable.

Edito: Se me olvidó decir, en el código que colocaste, la diferencia en realidad es ninguna, ambos funcionarían exactamente igual porque no corres el riesgo de que php interprete una variable diferente y la razón es que luego de $lang viene un punto el cual no es un caracter válido para el nombre de una variable.
__________________
Usuario Reigistrado de linux #399288

Última edición por Acron_0248; 02/01/2010 a las 18:56