Foros del Web » Programando para Internet » PHP »

diferencia entre constante y variable

Estas en el tema de diferencia entre constante y variable en el foro de PHP en Foros del Web. Buenas, ¿que tal?. El tema es que haciendo una web me surgió la duda entre la diferencia entre poner define("texto","el texto que sea."); y poner ...
  #1 (permalink)  
Antiguo 13/07/2009, 00:56
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
diferencia entre constante y variable

Buenas, ¿que tal?. El tema es que haciendo una web me surgió la duda entre la diferencia entre poner
define("texto","el texto que sea.");
y poner $texto="el texto que sea.";

Se que una variable es algo que puede cambiar y una constante es algo fijo, no me refiero a eso cuando pregunto entre la diferencia entre una y otra, sino que más bien mi duda es si existe algún motivo por el que usar constantes para eso y no variables (ya que el resultado es el mismo).

Gracias de antemano.
  #2 (permalink)  
Antiguo 13/07/2009, 01:37
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 19 años, 7 meses
Puntos: 13
Respuesta: diferencia entre constante y variable

Pues yo lo veo más a gusto del programador.

Por ejemplo las constantes yo las uso para definir parametros de cofiguracion de mi website, por ejemplo:

define(_MAX_ROWS_BLOG_,"30")
define(_LANG_,"esES")
define(_TITLE_,"Mi pagina web")
  #3 (permalink)  
Antiguo 13/07/2009, 01:40
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: diferencia entre constante y variable

Cita:
Iniciado por karliky Ver Mensaje
Pues yo lo veo más a gusto del programador.

Por ejemplo las constantes yo las uso para definir parametros de cofiguracion de mi website, por ejemplo:

define(_MAX_ROWS_BLOG_,"30")
define(_LANG_,"esES")
define(_TITLE_,"Mi pagina web")
Ok gracias, ¿pero no influye en la seguridad?.

En joomla he leído que existe una variable que se define en el index y que así no se puede acceder a los componentes sin antes pasar por el index; sinceramente no se en que puede afectar eso a la seguridad pero bueno, estaría bien que el que lo entienda de verdad lo explicara (lo dejo abierto).

Un saludo y gracias
  #4 (permalink)  
Antiguo 13/07/2009, 09:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: diferencia entre constante y variable

No, y su nombre lo dice, variable (es decir que varia) y constante (es decir no cambia), tu debes de usar variables cuando las necesites, ya que estas van a cambiar a lo largo de tu codigo, y una constante, cuando no vaya a cambiar.

Un ejemplo, una variable suma que vaya almacenando el valor de varios productos y una constante que sea el valor de los impuestos ya que estos no cambian.

Lo que hace Joomla por ejemplo es algo así:
Código php:
Ver original
  1. if (!defined("ALGUNA_VAR")) {
  2.       die("No puedes accesar a este script");
  3. }

Así solo si pasan por el index.php que define la variable no pueden leer las demás, yo resuelvo esto en lugar de usar un define, pongo mis scripts fuera del WebRoot, así los scrips no se leen por http, solo por el sistema local y ya los incluyo dependiendo de la ruta.

Saludos.
  #5 (permalink)  
Antiguo 13/07/2009, 10:47
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: diferencia entre constante y variable

Cita:
Iniciado por GatorV Ver Mensaje
yo resuelvo esto en lugar de usar un define, pongo mis scripts fuera del WebRoot, así los scrips no se leen por http, solo por el sistema local y ya los incluyo dependiendo de la ruta.

Saludos.
Si, como decía arriba se muy bien la diferencia entre el concepto de variable y de constante , lo que no sabía era en que afectaba usar una variable con valores que nunca cambian , me refería a si afectaba en seguridad y demás; tú solución me parece excelente.

Un saludo
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 16:17.