Foros del Web » Programando para Internet » PHP »

Teoría: ámbitos local y global

Estas en el tema de Teoría: ámbitos local y global en el foro de PHP en Foros del Web. Tengo algunas dudas al respecto de los ámbitos global y local. Por ejemplo, para este código: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php $captura = ...
  #1 (permalink)  
Antiguo 07/03/2011, 13:31
Avatar de Gambinoh  
Fecha de Ingreso: diciembre-2010
Mensajes: 348
Antigüedad: 13 años, 4 meses
Puntos: 11
Teoría: ámbitos local y global

Tengo algunas dudas al respecto de los ámbitos global y local.

Por ejemplo, para este código:

Código PHP:
Ver original
  1. <?php
  2. $captura = 0;
  3. if(isset($_GET['parametro'])){
  4. $captura = mysql_real_escape_string($_GET['parametro']);
  5. }
  6.  
  7. $multiplicacion = $captura * 2;
  8. ?>

En el código anterior, supongamos que el parámetro pasado sea un integer, entonces si existe $_GET['parametro'], entonces la condición de la estructura de control if es true y $captura cobra el valor del parámetro enviado. Luego, fuera de la estructura de control, la variable $captura recibe el nuevo valor de if, que puede ser distinto que 0.

En las funciones, las variables declaradas entre llaves, se consideran de ámbito local... ¿Con la estructura de control if, se considera también lo que está entre llaves de ámbito local?

¿Se considera a las estructuras de control if (if, if-else, if-elseif, if-elseif-else...), switch (switch-case-default...) y a los bucles while (while, do-while) y for como si fueran al mismo tiempo funciones predefinidas?

Si tengo por ejemplo este otro código:

Código PHP:
Ver original
  1. <?php
  2. $captura = 0;
  3. if(isset($_GET['parametro'])){
  4. $captura = mysql_real_escape_string($_GET['parametro']);
  5. }
  6.  
  7. if($captura != 0){
  8. echo $captura;
  9. }
  10. ?>

¿Se considera que la variable $captura pasa del ámbito local del primer if al ámbito local del segundo? En un caso en que no se pueda pasar una variable de una función a otra función, ¿cómo se usaría la palabra reservada "global"?
  #2 (permalink)  
Antiguo 07/03/2011, 13:37
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Teoría: ámbitos local y global

las condicionales no tienen q ver con el tema..
es aplicable en funciones / classes...

Código PHP:
$i 'foo';
if (
true) {
    echo 
$i// foo

  #3 (permalink)  
Antiguo 07/03/2011, 15:09
Avatar de Gambinoh  
Fecha de Ingreso: diciembre-2010
Mensajes: 348
Antigüedad: 13 años, 4 meses
Puntos: 11
Respuesta: Teoría: ámbitos local y global

Cita:
Iniciado por Hidek1 Ver Mensaje
las condicionales no tienen q ver con el tema..
es aplicable en funciones / classes...

Código PHP:
$i 'foo';
if (
true) {
    echo 
$i// foo

¿Me estás diciendo que en las sentencias de control, lo que se declara siempre está dentro del ámbito global? Entonces ya voy entendiendo más cosas.

Pero sigo teniendo problemas con las variables que intervienen en consultas SQL, no se que pasa que tengo que declararlas cada vez... ¿me podrías aclarar esto último?
  #4 (permalink)  
Antiguo 07/03/2011, 15:14
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Teoría: ámbitos local y global

la aplicacion del ambito es como te indico el amigo hidek1 para clases y funciones en tus condicionales y bucles sigue siendo el mismo ambito de tu script, porque las funciones no?? hasta donde tengo entendido porque son sub-rutinas que se utilizan en una llamada de echo las puedes declarar en un archivo e incluirlas para hacerles una llamada en varios, en cambio los condicionales y bucles donde los escribas se ejecutan y si los incluyes en el mismo sitio donde lo incluyes se ejecutan, espero que te aydude a entender un poco, aunque creo que lo complique
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 07/03/2011, 15:30
Avatar de Gambinoh  
Fecha de Ingreso: diciembre-2010
Mensajes: 348
Antigüedad: 13 años, 4 meses
Puntos: 11
Respuesta: Teoría: ámbitos local y global

Cita:
Iniciado por carlos_belisario Ver Mensaje
la aplicacion del ambito es como te indico el amigo hidek1 para clases y funciones en tus condicionales y bucles sigue siendo el mismo ambito de tu script, porque las funciones no?? hasta donde tengo entendido porque son sub-rutinas que se utilizan en una llamada de echo las puedes declarar en un archivo e incluirlas para hacerles una llamada en varios, en cambio los condicionales y bucles donde los escribas se ejecutan y si los incluyes en el mismo sitio donde lo incluyes se ejecutan, espero que te aydude a entender un poco, aunque creo que lo complique
Bueno, gracias, ya lo había entendido con el comentario de hidek1, pero quería una confirmación y gracias a tu comentario queda todo aclarado, incluso lo he comprendido un poco mejor, te lo agradezco.

Etiquetas: global, local
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 11:41.