Todo sobre variables

Una variable es un contenedor de información en memoria para su acceso rápido. Cada variable tiene un nombre y un valor asignado

1. Simples

Las variables deben iniciar con un $ luego el nombre que es sensible a mayusculas y ninusculas. Tiene que empezar con una letra, aunque pueden contener también números y _. No es necesario iniciar las variables, si declaraste el tipo asumen 0 o vacio.

$this es una variable especial que no puede ser asignada.

$var = 'Juan';
$Var = "Pedro";
echo "$var, $Var"  //Juan, Pedro

Se puede hacer asignación de variables por referencia usando & .

$a = 'Uno';
$Uno = 1;
$b = $a;
$c = &$a;
echo $b; //Uno
echo $c; //1
Forzar tipo
ParametroDescripcion
(int) o (integer)Forzar a entero
(bool) o (boolean)Forzar a bool
(float), (double) o (real)Forzar a float
(binary)Forzar a binario (PHP 5.2.1)
(string)Forzar a cadena
(array)Forzar a matriz
(object)Forzar a objeto
(unset)Forzar a NULL (PHP 5)

2. Matrices

Es una variable que contiene multiples datos a los cuales se accede mediante coordenas. 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 amondado a una cadena vacia.

$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);

3. Objetos

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();

4. Recursos

Los recursos son requeridos cuando PHP necesita comunicarse con algun programa esterno (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

5. Ambito de las variables

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 alla 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[].

6. Ciclo de vida de las variables

Las variables permanecen en memoria desde que son asignadas hasta que son destruidas explicitamente con la funcion 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, pero si variable contiene el valor falso también da falso.

$a = 25;
$b = false;
$c = isset($a);   //Verdadero
$d = isset($b);   //Falso

7. Funciones de variables

Existen funciones especificas para manipular variables. Para mas explicacion ver aqui

Funciones de variables
FuncionDescripción
isset()Da verdadero si variable existe y no es nula.
unset()Destruye una variable.
empty()Consulta si una variable esta vacia.
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.
Funciones para tipo
FunciónDescripció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
Funciones de conversión
FunciónDescripció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);

8. Recolector de basura

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()