Traductor

Variables Estáticas en PHP

Las variables  empleadas en las funciones tienen una característica. Si la función es invocada mas de una vez durante  durante la ejecución del script, las variables locales de la función no conservan  su valor de una llamada a otra.
Para ver claro a que nos referimos  observe el siguiente script.
<?php
                function estaticas(){
                               $variableNormal+=5;
                               echo ("El valor de \$variableNormal al comienzo de la función es $variableNormal.<br>");
                               $variableNormal*=2;
                               echo ("Al duplicar \$variableNormal su valor es $variableNormal.<br>");
                }
                echo ("<u>Primera ejecución de la función.</u><br>");
                estaticas();
                echo ("<u>Segunda ejecución de la función.</u><br>");
                estaticas();
?>

 L que veremos en el nvegador será:

Paso a Paso

  • En la primera linea del cuerpo de la función, se declara una variable y se le añaden 5 unidades.
  • Como dicha variable no existe previamente y estamos haciendo con ella una operación aritmética, PHP sobreentiende que es una variable numérica y le asigna inicialmente el valor de cero.
  • Al incrementarla en 5 unidades pasa a tener el valor a cinco, tal como se muestra en la segunda línea.
  • Después se multiplica por dos, con lo que pasa a valer diez, tal como se muestra en la cuarta línea.
  • Fíjese en que se invocan dos veces a la función y en ambas ocasiones el resultado es el mismo.
    • Esto quiere decir que el valor de la variable local $varibleNormal se pierde al terminar la ejecución de la función.
    • No se conserva de una ejecución a otra.
  • Este es el funcionamiento normal, y realmente será el que necesitemos en la mayoría de los casos
PERO también puede ser que necesitemos que una variable local conserve su contenido de una ejecución a otra.
Para esto usamos la función static.
<?php
                function estaticas(){
                               static $variableNormal;
                               $variableNormal+=5;
                               echo ("El valor de \$variableNormal al comienzo de la función es $variableNormal.<br>");
                               $variableNormal*=2;
                               echo ("Al duplicar \$variableNormal su valor es $variableNormal.<br>");
                }
                echo ("<u>Primera ejecución de la función.</u><br>");
                estaticas();
                echo ("<u>Segunda ejecución de la función.</u><br>");
                estaticas();
?>

Lo que veremos en el navegador será:

Ahora observe el resultado.
  • La primera vez que se llama a la función, como $variableNormal no existe, PHP la crea y, cuando se le dice que la incremente en 5 unidades, le queda el valor de cinco,
  • Al multiplicarlo por dos le queda el valor de diez.
  • Como la variable ha sido declarada como estática, este valor se conserva de modo que al llamar a la función por segunda vez, cuando se incrementa en 5 unidades, queda con el valor de quince, y al multiplicarlo por dos queda el valor de treinta.

Temas referentes a la Definición de Funciones


Recuerden Comentar Compartir y Darle 

Hasta la Próxima

Si te hemos ayudado : )
Te agradeceríamos que apoyaras este proyecto

0 comentarios:

Publicar un comentario