FAQ
Necesito usar una misma variable dentro de distintas funciones, el valor de
esta variable ira cambiando.

¿Como puedo hacer para que sea una variable global para no tenerla que pasar
todo el rato por parametros?

Gracias

--------------
XLWebmasters
http://www.xlwebmasters.f2s.com

Search Discussions

  • Pablo Godel at Oct 10, 2001 at 1:45 pm
    Dentro de cada funcion debes declarar que la variable es global:

    <?

    $a = 5;

    function aaa() {
    Global $a;

    echo $a;
    }

    ?>


    ----- Original Message -----
    From: Xavi <berna@farmavet.com>
    To: Llista PHPes <lista@phpes.com>
    Sent: Wednesday, October 10, 2001 6:53 AM
    Subject: [PHP-ES] Como definir variables globales

    Necesito usar una misma variable dentro de distintas funciones, el valor de
    esta variable ira cambiando.

    ¿Como puedo hacer para que sea una variable global para no tenerla que pasar
    todo el rato por parametros?

    Gracias
  • Cristian Sánchez B. at Oct 10, 2001 at 1:52 pm
    Hola amigos.
    Una consulta con respecto a la respuesta que dio Pablo Godel sobre la
    declaración de variables globales.
    Como puede ser una variable global si se tiene que definir en cada función?.
    Sorry por la pregunta pero no soy versado en PHP y me intrigo la respuesta.

    Atte.


    Cristian Sánchez B.
    Analista de Sistemas
    csanchez@colegiomayor.cl
    csanchez@cecum.cl

    -------Original Message-------

    From: lista@phpes.com
    Date: Wednesday, October 10, 2001 02:51:53 PM
    To: lista@phpes.com
    Subject: Re: [PHP-ES] Como definir variables globales

    Dentro de cada funcion debes declarar que la variable es global:

    <?

    $a = 5;

    function aaa() {
    Global $a;

    echo $a;
    }

    ?>

    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com
  • Angel Fenoy at Oct 10, 2001 at 2:10 pm

    Dimecres 10 Octubre 2001 10:53, Cristian Sánchez B. dixit:

    Hola amigos.
    Una consulta con respecto a la respuesta que dio Pablo Godel sobre la
    declaración de variables globales.
    Como puede ser una variable global si se tiene que definir en cada
    función?. Sorry por la pregunta pero no soy versado en PHP y me intrigo la
    respuesta.
    Tu confusión seguramente viene dada por la manera como se usan las variables
    en otros lenguajes, donde la declaración 'global' equivale a 'entregar'
    automáticamente esa variable al resto de programa. En php, la declaración
    'global' equivale a 'solicitar' esa variable. No sé si se entiende..., mejor
    mírate el ejemplo que acabo de mandar:

    http://phpes.com/archivo.php?mess_id=14675

    Saludos
    Àngel
  • Cristian Sánchez B. at Oct 10, 2001 at 2:15 pm
    Gracias por aclarar mis dudas.
    Vi tu ejemplo luego que envie la pregunta y me quedo claro.

    Atte.


    Cristian Sánchez B.
    Analista de Sistemas
    csanchez@colegiomayor.cl
    csanchez@cecum.cl

    -------Original Message-------

    Tu confusión seguramente viene dada por la manera como se usan las variables

    en otros lenguajes, donde la declaración 'global' equivale a 'entregar'
    automáticamente esa variable al resto de programa. En php, la declaración
    'global' equivale a 'solicitar' esa variable. No sé si se entiende..., mejor

    mírate el ejemplo que acabo de mandar:

    http://phpes.com/archivo.php?mess_id=14675

    Saludos
    Àngel

    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com
  • Antonio Salom at Oct 10, 2001 at 2:14 pm

    El Mié 10 Oct 2001 04:53, Cristian Sánchez B. escribiste:
    Hola amigos.
    Una consulta con respecto a la respuesta que dio Pablo Godel sobre la
    declaración de variables globales.
    Como puede ser una variable global si se tiene que definir en cada
    función?. Sorry por la pregunta pero no soy versado en PHP y me intrigo la
    respuesta.
    Atte.
    Por defecto en PHP todas las variables son locales, para cada función. Esto
    es muy práctico porque no debes preocuparte de si el nombre de variable que
    utilizas ya se utiliza en no se que función o en el proceso principal y le
    cambias el valor y ... Para utilizar una variable global debes indicarlo
    explicitamente antes de usarla. Mirate el apartado de ambito de variables:

    http://www.php.net/manual/es/language.variables.scope.php
    Cristian Sánchez B.
    Analista de Sistemas
    csanchez@colegiomayor.cl
    csanchez@cecum.cl

    -------Original Message-------

    From: lista@phpes.com
    Date: Wednesday, October 10, 2001 02:51:53 PM
    To: lista@phpes.com
    Subject: Re: [PHP-ES] Como definir variables globales

    Dentro de cada funcion debes declarar que la variable es global:

    <?

    $a = 5;

    function aaa() {
    Global $a;

    echo $a;
    }

    ?>

    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com
    --
    Antonio Salom Palliser
  • Angel Fenoy at Oct 10, 2001 at 1:52 pm

    Dimecres 10 Octubre 2001 13:53, Xavi dixit:

    Necesito usar una misma variable dentro de distintas funciones, el valor de
    esta variable ira cambiando.

    ¿Como puedo hacer para que sea una variable global para no tenerla que
    pasar todo el rato por parametros?

    Gracias
    Las variables que inicialices en la parte principal del programa (y también
    las del código de los ficheros que leas con 'include' o 'require'), son ya
    globales, no tienes que hacer ningún tipo de declaración de ámbito con ellas
    en el cuerpo principal del programa. Para poder usar esas variables en las
    funciones del programa, o bien te refieres a ellas usando el arreglo especial
    $GLOBALS, como $GLOBALS['nombre_de_la_variable'] o bién las declaras como
    globales en el cuerpo de la función, con la cláusula 'global' :

    <?

    error_reporting(E_ALL &~ E_NOTICE);
    // Con esto evitamos los warnings de variables no inicializadas

    $variable = '1';

    echo 'A' . $variable; // funciona, imprime A1
    echo 'B' . $GLOBALS['variable']; // también funciona, B1

    global $variable; // ¿?¿?¿? innecesario aquí

    mi_funcion();

    function mi_funcion () {

    echo 'C' . $GLOBALS['variable']; // funciona, C1

    echo 'D' . $variable; // no funciona, imprime D
    global $variable; // la declaras como global
    echo 'E' . $variable; // ahora sí funciona, imprime E1
    }

    ?>

    El resultado será A1B1C1DE1


    Las variables que inicialices dentro de las funciones, y también las
    variables de los procedimientos de las clases, son privadas a esas funciones,
    a no ser que las declares como globales dentro de la función *antes* de
    inicializarlas:

    <?

    error_reporting(E_ALL &~ E_NOTICE);
    // Con esto evitamos los warnings de variables no inicializadas

    echo $variable; // no funciona, aún no existe
    echo $GLOBALS['variable']; // tampoco funciona

    mi_funcion1(); // aquí la inicializamos como privada, e imprimimos 1
    echo $variable; // Tampoco funciona, ahora sí existe, pero es privada

    echo $GLOBALS['variable']; // sigue sin funcionar, es privada.

    mi_funcion2(); // aquí la inicializamos primero como privada
    // e imprimimos 2. Luego la inicializamos como
    // global e imprimimos 3 y 3

    echo $variable; // funciona, imprime 4
    echo $GLOBALS['variable']; // funciona, imprime 4

    function mi_funcion1() {

    echo $GLOBLALS['variable']; // no funciona, no existe

    $variable = 1; // la inicializamos como privada
    echo $variable; // imprime 1

    echo $GLOBLALS['variable']; // no funciona, sigue sin existir como global

    }

    function mi_funcion2() {

    echo $GLOBLALS['variable']; // no funciona, no existe como global

    echo $variable; // no funciona, existe como privada de mi_funcion1(),
    // pero no como privada de mi_funcion2()

    $variable = 2; // la inicializamos como privada o local
    echo $variable; // imprime 2

    echo $GLOBLALS['variable']; // no funciona, sigue sin existir como global

    global $variable; // OJO AQUÍ! declaramos que a partir de ahora nos
    // referiremos a $variable como una variable global,
    // pero aún no existe la variable global con ese nombre
    // *NO* estamos convirtiendo la variable local a global

    echo $variable; // *NO FUNCIONA*. La variable global aún no está
    // inicializada, y la variable local ya no es accesibe.

    $variable = 3; // Inicializamos la variable global
    echo $variable; // imprime 3
    echo $GLOBALS['variable']; // imprime 3

    $variable = 4; // finalmente, éste será su valor

    }

    ?>

    El resultado será 123344

    Haced otra prueba, si en lugar de error_reporting(E_ALL &~ E_NOTICE) ponemos
    error_reporting(E_ALL), aparecerán un montón de warnings de variables no
    inicilizadas, con los números de línea donde estamos cometiendo los errores.
    Así deberían comenzar todos los scripts php mientras estamos comprobando el
    correcto funcionamiento del código, con error_reporting(E_ALL).

    Saludos
    Àngel

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedOct 10, '01 at 11:46a
activeOct 10, '01 at 2:15p
posts7
users5
websitephp.net

People

Translate

site design / logo © 2022 Grokbase