FAQ
Hola a todos,

Durante el estudio de la aplicación PhpMyVisities, me he encontrado que en
la declaración de una variable, delante pone "static" y el editor me lo
reconoce como función php.

Por lógica entiendo que establece la variable como estática, es decir como
una constante. igual que con la función "define", pero a continuación me
pregunta el valor de esta variable cuando no veo que le de ninguno.


function &getInstance()
{
static $instance;

if (!isset($instance)){
$c = __CLASS__;
$instance = new $c;
}
return $instance;
}

Alguna idea? Gracias de antemano



PD: Que significa el signo & delante de esta función?

Search Discussions

  • Satyam at Sep 3, 2007 at 3:38 pm
    Por alguna razón, la versión en castellano del manual no tiene el título
    static, aunque la explicación si esta alli:

    http://www.php.net/manual/es/language.variables.scope.php

    asi pues, no puedo recomendarte RTFM.

    Static, y es lo mismo en muchos lenguajes, no es para definir una constante
    sino para definir una variable que conserva su valor entre llamadas a la
    funcion. En cuanto al valor contenido en la variable, es como si fuera
    global, o sea, una vez que tiene el valor, no lo pierde, pero en cuanto a
    uso del espacio de nombres, la variable no ocupa espacio global, fuera de la
    funcion en que se declara es desconodica.

    En el caso de $instance, de no ser declarada como static, cada vez que se
    llame la funcion estaría 'unset'. Al ser static, solo la primera vez lo
    estara, en las subsiguientes tendra una instancia de la clase recien creada.

    Lo que tienes ahi es un patron 'singleton' que garantiza que siempre que lo
    llames obtendras la misma única copia de esa clase, que entre llamadas
    permanecerá almacenada en $instance.

    Satyam

    ----- Original Message -----
    From: "Jacobo Pedrosa" <jackobo83@gmail.com>
    To: <php-es@lists.php.net>
    Sent: Monday, September 03, 2007 5:10 PM
    Subject: [PHP-ES] definicion de static


    Hola a todos,

    Durante el estudio de la aplicación PhpMyVisities, me he encontrado que en
    la declaración de una variable, delante pone "static" y el editor me lo
    reconoce como función php.

    Por lógica entiendo que establece la variable como estática, es decir como
    una constante. igual que con la función "define", pero a continuación me
    pregunta el valor de esta variable cuando no veo que le de ninguno.


    function &getInstance()
    {
    static $instance;

    if (!isset($instance)){
    $c = __CLASS__;
    $instance = new $c;
    }
    return $instance;
    }

    Alguna idea? Gracias de antemano



    PD: Que significa el signo & delante de esta función?



    --------------------------------------------------------------------------------


    No virus found in this incoming message.
    Checked by AVG Free Edition.
    Version: 7.5.484 / Virus Database: 269.13.2/985 - Release Date: 02/09/2007
    16:32

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedSep 3, '07 at 3:10p
activeSep 3, '07 at 3:38p
posts2
users2
websitephp.net

2 users in discussion

Satyam: 1 post Jacobo Pedrosa: 1 post

People

Translate

site design / logo © 2022 Grokbase