Una variable es un contenedor de información en memoria para su acceso rápido.
Las variables deben iniciar con un $ luego el nombre que es sensible a mayúsculas y minúsculas. Tiene que empezar con una letra, aunque pueden contener también números y _. No es necesario inicializar las variables, si declaraste el tipo asumen 0 o vacío ('') o falso.
$nombre = valor;
$nombre = 'Kike'; $n = 21; $pi = 3.1416; $flag = true; $r = null;
$this es una variable especial que no puede ser asignada.
$nom = 'Juan'; $Nom = "Pedro"; echo $nom, $Nom; //JuanPedro (no deja espacio) print $nom, $Nom; //Error echo "Mis alumnos son: $nom y $Nom"; //Mis alumnos son: Juan y Pedro
Es una variable que contiene múltiples datos a los cuales se accede mediante coordenadas. La clave puede ser un entero o una cadena, pero es opcional si no lo especificas empezada en cero. El valor contenido en cada coordenada puede ser de cualquier tipo. Los datos e tipo entero, float y boleano sera amoldado a entero. Un null sera amoldado a una cadena vacía.
$variable = array('Cero',.True.,2,null);
//Desde PHP 5.4 $variable = ['Cero',.True.,2,null];
$variable = [ '0' => 'Cero', 'dos' => 2, '99' => null, ];
Para ver todo el contenido de una matriz puedes usar var_dump()
var_dump($variable);
Son instancias de clases definidas pro el programador, que pueden englobar otros tipos de valores y funciones que son específicos a la clase.
La definición básica de una clase comienza con la palabra reservada class, seguida de un nombre de clase, y continuando con un par de llaves que encierran las definiciones de las propiedades y métodos pertenecientes a dicha clase.
class clase{ function uno((parametros)){ ... return [valor]; } function dos((parametros)){ ... return [valor]; } } $cosa = new clase; $cosa->uno();
Una clase puede heredar los métodos y propiedades de otra clase empleando la palabra reservada extends en la declaración de la clase. No es posible la extensión de múltiples clases; una clase sólo puede heredar de una clase base.
class clase2 extends clase{ function tres([parametros]){ ... return [valor]; } } $cosa = new clase2; $cosa->uno(); $cosa->tres();
Los recursos son requeridos cuando PHP necesita comunicarse con algún programa externo (base de datos o programa grafico) que asigna memoria del servidor en función a la petición de PHP.
$mysqli = new mysqli('servidor','usuario','clave','base de datos'); ... $mysqli->close(); $mysqli = NULL; unset($mysqli); //PHP 5
El ámbito de una variable es el contexto dentro del que la variable está definida. La mayor parte de las variables PHP sólo tienen un ámbito simple. Este ámbito simple también abarca los ficheros incluídos y los requeridos.
Para que una variable exista mas allá del archivo en que fue creada, de debe incluir la clausula Global en su declaración.
global $a, $b;
Otra manera de obtener variables globales en mediante $_SESSION[].
Las variables permanecen en memoria desde que son asignadas hasta que son destruidas explicitamente con la función unset().
Ambito | Descripción |
---|---|
Local | Declarada en una función de usuario. Solo serán accesibles dentro de dicha función. |
static | Solo declara la variable si aun no existe. |
global | Declaradas dentro de una función de usuario asume el valor que tenia fuera de la función. Ver ejemplo. |
Super global | Declarar como una matriz (desde PHP 5) |
$nombre = 'Kike'; function uno(){ $nombre = 'Mily'; } uno(); echo $nombre; //Kike
Como se soluciona esto en PHP ?
$nombre = 'Kike'; function uno(){ global $nombre; //Debe estar dentro de función $nombre = 'Mily'; } uno(); echo $nombre; //Mily
Una variable creada dentro de la función es local es decir solo está disponible dentro de la función, así tenga el mismo nombre de una variable que está fuera de ella. Ver ejemplo
Veamos otro ejemplo
function cuenta(){ static $x = 0; $x++; echo $x,"\n"; } cuenta(); //1 cuenta(); //2 cuenta(); //3
$x = 0; function cuenta(){ global $x; $x++; echo $x,"\n"; } cuenta(); //1 cuenta(); //2 cuenta(); //3
Para destruir una variable se usa unset()
unset($a, $num, $fecha);
Es importante entender el ciclo de vida de las variables. Antes de ser declara la variable no existe y isset() dará falso.
if (isset($a)){ echo 'Si'; }else{ echo 'No'; //Respuesta } $a = 25; if (isset($a)){ echo 'Si'; //Respuesta }else{ echo 'No'; }
Existen funciones especificas para manipular variables. Para mas explicación ver aquí
Función | Descripción |
---|---|
isset() | Da verdadero si variable existe y no es nula. |
unset() | Destruye una variable. |
empty() | Consulta si una variable esta vacía. |
is_null() | Comprueba si una variable es NULL. |
is_array() | Comprueba si una variable es una matriz. |
is_resource() | Comprueba si una variable es un recurso. |
is_object() | Comprueba si una variable es un objeto. |
is_callable() | Comprueba que los contenidos de una variable puedan ser llamados como una función. |
var_dump() | Muestra información sobre una variable. |
var_export() | Devuelve una representación string de una variable analizable. |
serialize() | Genera una representación apta para el almacenamiento de un valor. |
unserialize() | Crea un valor PHP a partir de una representación almacenada. |
SetType() | Establece el tipo de una variable. |
GetType() | Obtener el tipo de una variable. |
pack() | Empaqueta información a una cadena binaria. |
unpack() | Desempaqueta datos de una cadena binaria. |
Función | Descripción |
---|---|
gettype() | Retorna el tipo de dato: entero, flotante, cadena, matriz, objeto o desconocido. |
is_numeric() | Retorna TRUE si arg es numérico |
is_int() | entero |
is_integer() | |
is_long() | flotante |
is_double() | |
is_float() | |
is_real() | |
is_bool() | boleano |
is_null() | nulo |
is_string() | cadena |
is_binary() | cadena binaria |
is_buffer() | cadena binaria |
is_unicode() | cadena unicode |
is_array() | matriz |
is_object() | objeto |
is_resource() | recurso |
is_scalar() | variable escalar |
Función | Descripción |
---|---|
ord() | entero a cadena |
ceil() | flotante a entero |
floor() | |
round() | |
chr() | cadena a entero |
explode() | Cadena a matriz |
implode() | matriz a cadena |
$var[0] = 'Mi'; $var[1] = 'pequeño'; $var[2] = 'mundo.'; $res = implode(' ',$var); echo $res; // My pequeño mundo $matriz = explode(' ',$res);
Desde PHP 5.3 se implemento un nuevo mecanismo llamado "recolector de basura" (Garbage Collection - GC). Siempre hemos pensado que al acabar un script ya se reciclaron todas las variables y esto es cierto, ya no se puede acceder a ninguna de las variables, pero en la memoria del servidor queda un pequeño espacio inutilizado, llamado fuga de memoria (Leake memory)
gc_collect_cycles()