Actualizado el 14-01-2007
versión para imprimir

Variables

Concepto

Las variables son un espacio o area de memoria dispuesta para almacenar un valor para su posterior uso por el script, que tiene asignado un identificador (nombre). El valor puede ser una cadena o un numero.

En php no hace falta declarar una variable antes de su uso, ni establecer su tipo. Su nombre puede ser una combinacion de letras (a-Z), números y guiones bajos, precedidos con el signo $. El primer carácter no puede ser un número, y php diferencia entre mayusculas y minúsculas.
$var no es igual a $Var

Para utilizar una variable basta con asignarle un valor, usando para ello el operador =
Si el valor es una cadena, necesita ir entrecomillado.


<?php
$ciudad 
"madrid";     // el valor de ciudad es madrid
$ciudad "zaragoza";   // ciudad ahora es zaragoza
$Ciudad "barcelona";  // esta es otra variable distinta
?>

Dependiendo de la información que contenga, tenemos diversos tipos de variables:

  • integer contiene un número entero
  • double contiene un número con decimales
  • string una cadena de caracteres

<?php
$int 
1;           // integro
$doub 1,5;        // double
$string1 "1";     // string
$string2 "uno";   // string
$fecha date(Y);   // tambien podemos asignar a variables el resultado de
                    // una función.
?>

Como ves, el valor de una variable ha de asignarse entrecomillado, salvo que se trate de un valor numérico.

tipado (casting) de variables

Como hemos dicho, a diferencia de otros lenguajes, al declarar una variable no tenemos que indicar a que tipo pertenece. Php lo hará por nosotros de acuerdo con su contenido y el contexto.

Aunque no es necesario, podemos especificar el tipo de la variable, o forzar su conversion. Forzar un tipo de variable puede ser muy util, por ejemplo para validar la entrada de datos por usuarios desde un formulario.


<?php
$cadena
="5";         //esto es una cadena
$entero=3;           //esto es un entero
echo $cadena+$entero //daria el resultado 8


$mivar "3";        // $mivar es tipo string 
$mivar $mivar// automaticamente se convierte a tipo integer
                     // $mivar ahora vale 5

$mivar = (string)123;// creamos $mivar como cadena

settype($mivar"double"); // forzamos su cambio a tipo double
                           // el cambio forzado afecta al valor de la
                           // variable:
                           // $mivar = 3.5;
                           // $mivar = (integer)$mivar; -> valor 3
                           // $mivar = (boolean)$mivar; -> valor 1 
?>

Averiguando el tipo de una variable

Si necesitamos saber a que tipo pertenece una variable podemos usar la función gettype():


<?php
 $mivar 
"123";
echo 
gettype($mivar); // string
 
$mivar 123;
echo 
gettype($mivar); // integer

?>

Chequeando tipos concretos

Si lo que necesitamos es saber si se trata de un tipo concreto de variables, podemos usar una funcion ad hoc: Todas ellas tomas como parámetro el nombre de la función a chequear, y devuelven verdadero o falso

Un dato importante a tener en cuenta es que una variable, sea cual sea su tipo, si es pasada via GET o POST automáticamente se convierte en tipo string. Por ello no podremos utilizar is_integer, por ejemplo, sino is_numeric,, que no indaga acerca del tipo de variable, sino acerca de los caracteres que la componen.

  • is_array()
  • is_bool()
  • is_double()
  • is_float()
  • is_int()
  • is_integer()
  • is_long()
  • is_null()
  • is_numeric()
  • is_object()
  • is_real()
  • is_resource()
  • is_scalar()
  • is_string()

valores por referencia

A partir de php 4 ademas de pasar un valor a una variable por asignación, podemos pasarselo por referencia

Para ello creamos una nueva variable que referencia ( "se convierte en un alias de" o "apunta a") la variable original. Los cambios a la nueva variable afectan a la original, y viceversa.

Para asignar por referencia, simplemente se antepone un ampersand (&) al comienzo de la variable cuyo valor se está asignando.


<?php

    $a 
5;         // $a vale 5
    
$b = &$a;       // $b vale 5  
    
$b $b 3;    // $b vale 8. $a TAMBIEN vale 8 ahora. 
    /* los valores serán $a = 8 y $b = 8; */

?>

variables constantes

Son aquellas cuyo valor no va a cambiar a lo largo de la ejecución del script. Para asignarles un valor se usa la función define()


<?php
define 
("AUTOR_EMAIL","blah@miemail.com");

echo 
AUTOR_EMAIL// imprime blah@miemail.com
                  // observa que las variables constantes
                  // no necesitan del signo $
                  // Las constantes NO pueden ir entrecomilladas.
?>

Podemos utilizar la funcion defined() para chequear si una constante esta definida o no.

Por último, PHP ofrece diversas constantes predefinidas:


<?php
                    
echo __FILE__ ."<br>";   // nombre del archivo
echo __LINE__ ."<br>";   // numero de linea de codigo 
echo PHP_VERSION."<br>"// numero de version php 
echo PHP_OS ."<br>";     // sistema operativo  
echo TRUE."<br>";        // valor verdadero (1) 
echo FALSE."<br>";       // valor falso (0 o cadena vacia) 
echo NULL."<br>";        // sin valor 

?>

Variables de variables

Podemos reutilizar el valor de una variable como nombre de otra variable


<?php
$var 
"ciudad";   // tenemos una variable var, valor ciudad 

$$var "madrid";  // creamos una variable llamada ciudad, con
                   // valor madrid.
                   // echo $ciudad nos daría "madrid".  
          
?>
This site powered by Phorum.