Foros del Web » Programando para Internet » PHP »

diferencia entre sintaxis

Estas en el tema de diferencia entre sintaxis en el foro de PHP en Foros del Web. Hola, tengo una pregunta media boba jeje, he visto que algunos sistemas usan esta sintaxis: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original function __construct ( $lang ...
  #1 (permalink)  
Antiguo 02/01/2010, 18:28
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años
Puntos: 43
diferencia entre sintaxis

Hola,
tengo una pregunta media boba jeje, he visto que algunos sistemas usan esta sintaxis:
Código PHP:
Ver original
  1. function __construct($lang)
  2.     {
  3.         global $langs;
  4.         if(empty($lang) && file_exists("app/config/langs.php"))
  5.         include_once("app/config/langs.php");
  6.         else if(file_exists("app/config/langs.{$lang}.php"))
  7.         include_once("app/config/langs.{$lang}.php");
  8.         $this->lang = $langs;
  9.     }

que diferencia tiene con usar algo asi:
Código PHP:
Ver original
  1. function __construct($lang)
  2.     {
  3.         global $langs;
  4.         if(empty($lang) && file_exists("app/config/langs.php"))
  5.         include_once("app/config/langs.php");
  6.         else if(file_exists("app/config/langs.$lang.php"))
  7.         include_once("app/config/langs.$lang.php");
  8.         $this->lang = $langs;
  9.     }

no entiendo lo de usar los {} en las variables.

salu2
  #2 (permalink)  
Antiguo 02/01/2010, 18:49
Avatar de Acron_0248  
Fecha de Ingreso: junio-2005
Ubicación: 127.0.0.1
Mensajes: 1.648
Antigüedad: 19 años, 4 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
  #3 (permalink)  
Antiguo 02/01/2010, 18:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: diferencia entre sintaxis

lee el siguiente tema:
COMO: usar las comillas bien
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 02/01/2010, 19:08
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años
Puntos: 43
Respuesta: diferencia entre sintaxis

muchas gracias a los dos, ahora me quedo mucho mas claro

Etiquetas: diferencia, sintaxis
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:42.