<< Bases de Datos php mysql

Variables estáticas Variables de Variables
Variables estáticas
Esta es la primera llamada a sinEstaticas()
Valor inicial de 0: 0
Valor inicial de 0: 0
Nuevo valor de 5: 5
Nuevo valor de -7: -7
Esta es la segunda llamada sinEstaticas()
Debe dar el mismo resultado que la llamada anterior
Valor inicial de 0: 0
Valor inicial de 0: 0
Nuevo valor de 5: 5
Nuevo valor de -7: -7

Esta es la primera llamada a conEstaticas()
Valor inicial de 0: 0
Valor inicial de 0: 0
Nuevo valor de 5: 5
Nuevo valor de -7: -7
Esta es la segunda llamada a conEstaticas()
El resultado es distinto a la llamada anterior
Valor inicial de 0: 0
Valor inicial de -7: -7
Nuevo valor de 5: 5
Nuevo valor de -14: -14
Código

<?
/* Escribamos una función y llamémosla sinEstaticas. Definamos en ella dos variables sin ninguna otra especificación e insertemos las instrucciones para que al ejecutarse se escriban los valores de esas variables */
function sinEstaticas(){
# Pongamos aquí su valores iniciales
$a=0;
$b=0;

# Imprimamos estos valores iniciales
echo "Valor inicial de $a: ",$a,"<br>";
echo "Valor inicial de $b: ",$b,"<br>";
/* Modifiquemos esos valores sumando 5 al valor de $a y restanto 7 al valor de $b. $a +=5 y $b -=7 serán quienes haga esas
nuevas asignaciones de valor ya lo iremos viendo, no te preocupes */

$a +=5;
$b -=7;

# Visualicemos los nuevos valores de las variables
echo "Nuevo valor de $a: ",$a,"<br>";
echo "Nuevo valor de $b: ",$b,"<br>";
}
/*Escribamos ahora la misma función con una modificación que será asignar la condición de estática a la variable $b. Llamemos a esa función: conEstaticas*/
function conEstaticas(){
# Definimos $b como estática
$a=0;
static $b=0;
echo "Valor inicial de $a: ",$a,"<br>";
echo "Valor inicial de $b: ",$b,"<br>";
$a +=5;
$b -=7;

echo "Nuevo valor de $a: ",$a,"<br>";
echo "Nuevo valor de $b: ",$b,"<br>";
}
# Insertemos un texto que nos ayude en el momento de la ejecución
print ("Esta es la primera llamada a sinEstaticas()<br>");
# Invoquemos la función sinEstaticas;
sinEstaticas();
# Añadamos un nuevo comentario a la salida
print ("Esta es la segunda llamada sinEstaticas()<br>");
print ("Debe dar el mismo resultado que la llamada anterior<br>");
# Invoquemos por segunda vez sinEstaticas;
sinEstaticas();
# Hagamos ahora lo mismo con la función conEstaticas
print ("Esta es la primera llamada a conEstaticas()<br>");
conEstaticas();
print ("Esta es la segunda llamada a conEstaticas()<br>");
print ("El resultado es distinto a la llamada anterior<br>");
conEstaticas();
?>

Variables de variables
El color rojo es mi color preferido
El color rojo es mi color preferido
El color rojo es mi color preferido
Las tres líneas anteriores deben decir lo mismo
Hemos invocado la misma variable de tres formas diferentes

Ahora la variable magenta ha cambiado a magenta
pero como no hemos creado ninguna variable con ese color
en las lineas siguientes no aparecerá nada
detrás de la palabra magenta
El color magenta
El color magenta
Pese a que magenta vale ahora magenta
la vieja variable es mi color preferido sigue existiendo
y conserva su valor. Es este: es mi color preferido
Código

<?
# Definamos una variable y asignémosle un valor
$color="rojo";
# Definamos ahora una nueva variable de nombre variable usando para ello la variable anterior
$$color=" es mi color preferido";
# Veamos impresos los contenidos de esas variables
print ( "El color ".$color. $$color ."<br>");
#o también
print ( "El color ".$color. ${$color}."<br>");
# o también
print ( "El color ".$color. $rojo."<br>");
# advirtamos lo que va a ocurrir al visualizar la página
print ("Las tres líneas anteriores deben decir lo mismo<br>");
print ("Hemos invocado la misma variable de tres formas diferentes<BR>");
# cambiemos ahora el nombre del color
$color="magenta";
/* La variable $rojo seguirá existiendo. El hecho de cambiar el valor a $color no significa que vayan a modificarse las variables creadas con su color anterior ni que se creen automaticamente variables que tengan por nombre el nuevo valor de $color */
# Pongamos un mensaje de advertencia para que sea visualizado en la salida

print ("Ahora la variable $color ha cambiado a magenta<br>");
print ("pero como no hemos creado ninguna variable con ese color<br>");
print ("en las lineas siguientes no aparecerá nada <br>");
print ("detrás de la palabra magenta <br>");
# Escribimos los print advertidos
print (" El color ".$color.$$color."<br>");
print (" El color ".$color.${$color}."<br>");
# Comprobemos que la variable $rojo creada como variable de variable cuando $color="rojo" aún existe y mantiene aquel valor
print ("Pese a que $color vale ahora ".$color."<br>");
print ("la vieja variable $rojo sigue existiendo <br>");
print ("y conserva su valor. Es este: ".$rojo);
?>