Plantilla:PHP/Declaraciones/Variables

v

Valor de variable
cantidad de variables predefinidas que se pueden usar libremente: {{MRM_Actividad|title= Variables predefinidas| {{MRM_Ejemplo| }}
 * A una variable le puedo asignar un valor en cualquier momento
 * El tipo de la variable depende del valor que tiene
 * Hay una serie de funciones del sistema relacionadas con los valores y las variables
 * Además de las variables definidas por el programador, existen gran
 * Variables de entorno o matrices superglobales
 * 1) $GLOBALS
 * 2) $_SERVER
 * 3) $_GET
 * 4) $_POST
 * 5) $_COOKIE
 * 6) $_FILES
 * 7) $_ENV
 * 8) $_REQUEST
 * 9) $_SESSION
 * Ejemplos de declaraciones
 * Conversión de tipos
 * PHP es muy flexible en el manejo de los tipos de datos.
 * PHP evalúa la operación a realizar y el tipo de los operandos, y adapta los operandos para poder realizar la operación lo más correctamente posible.
 * En una operación aritmética con cadenas intenta obtener el valor numérico de las cadenas.
 * En operaciones entre enteros y coma flotante resulta un número en coma flotante.
 * Una concatenación de cadenas con una variable numérica hace que ésta última sea convertida a cadena.
 * Podemos tener conversiones explícitas o implícitas
 * Conversión automática o implícitas
 * El interprete las realiza en determinadas situaciones
 * Para ello manda el operador que es quien indica el tipo de expresión
 * Php adapta los operadores a la operación a realizar
 * Reglas de conversión automática
 * 1) En operaciones lógicas, los datos NULL, 0,'0' y ‘ ' se consideran FALSE.
 * 2) Cualquier otro dato se considera TRUE (incluida lacadena 'FALSE').
 * 3) En operaciones aritméticas no unitarias las cadenas se intentan leer como números y, si no se puede, se convierten en 0,
 * 4) TRUE se convierte en 1, y FALSE se convierte en 0.
 * 5) En operaciones de comparación, si un operando es un número, el otro también se convertirá en un número.
 * 6) Sólo si ambos operandos son cadenas se compararán como cadena.
 * 7) En operaciones de cadenas de caracteres, NULL y FALSE se convierten en ‘ ', y TRUE se convierte en '1'.
 * Conversión forzada o explícita
 * En ella nosotros espeficicamos el tipo que queremos que tenga el operando
 * Si hace falta luego se aplicará la conversión forzada, por lo que no siempre se adaptará al tipo especificado
 * PHP permite otras conversiones implícitas de tipos :
 * 1) (int) : Fuerza la conversión a entero
 * 2) (real), (double), (float): Fuerza la conversión a coma flotante.
 * 3) (string): Fuerza la conversión a cadena de caracteres.
 * 4) (array): Fuerza la conversión a matriz
 * 5) (object): Fuerza la conversión a un objeto.

http://php.net/manual/es/language.types.type-juggling.php {{MRM_Puntos clave|
 * Conversión de tipos
 * Se puede mirar la web para ello
 * Más adelante veremos los operadores de comparación. Por ejemplo el valor 8 y el valor "8" son iguales, pero no son del mismo tipo
 * Operador == para comparar valores
 * Operador === para comparar valores y tipo }}

Variable de variables
Se pueden crear nombres de variables dinámicamente anteponiendo $$ a una variable.

{{MRM_Punto clave| }
 * La variable variable toma su nombre del valor de otra variable previamente declarada.


 * Esto es una una por referencia, a diferencia, se están creando dos variables distintas que ocupan direcciones de memoria distintas.
 * En php si queremos acceder a la dirección de memoria de una variable usaremos el símbolo &

Ambito de una variable

 * http://php.net/manual/es/language.variables.scope.php
 * Ya sabemos que en PHP puedes utilizar variables en cualquier lugar de un programa.
 * Si esa variable aún no existe, la primera vez que se utiliza se reserva espacio para ella.
 * En ese momento, dependiendo del lugar del código en que aparezca, se decide desde qué partes del programa se podrá utilizar esa variable.
 * A esto se le llama visibilidad de la variable.


 * Ambito de una variable
 * En función de esto tenemos variables locales a la función y variables locales al script


 * Ambito de una variable
 * Para poder hacer dentro de una función a una variable definida fuera, he de usar la palabra reservada global

Variables static

 * Si una variable la declaramos static, hacemos que su posición de memoria no se elimine aunque no sea accesible por el script
 * Cuando volvamos a una sección del script donde vuelve a ser accesible, entonces retomaremos esa posicion de memoria, con el valor que tuviera
 * static
 * Las variables estáticas deben inicializarse en la misma sentencia en que se declaran como estáticas. De esta forma, se inicializan sólo la primera vez que se llama a la función.