Introducción a las Variables
Las variables son una de las bases de PHP, y de todo lenguaje de programación.
Imagina que tuvieses una calculadora que solo pudiera multiplicar 3x4.
No serÃa nada útil.
Todo lenguaje de programación necesita una forma temporal de almacenar valores variables
y ser capaz de operar con ellos. En esta lección aprenderás qué son, cómo crearlas,
y cómo utilizarlas.
Concepto
Una variable es un espacio en la memoria donde guardas un valor
(como un número o texto) y le das un nombre para usarlo en tu script.
En PHP, las variables son muy flexibles: no necesitas declararlas antes ni decir de qué tipo
son.
Reglas para nombrar variables
- Siempre empiezan con un signo
$
(por ejemplo,$ciudad
). - El nombre puede incluir letras (a-Z), números (0-9), o guiones bajos (
_
). - El primer carácter no puede ser un número.
- PHP distingue entre mayúsculas y minúsculas:
$var
y$Var
son diferentes. - No uses espacios ni caracteres especiales (como
@
,#
).
Ejemplo:
<?php
$ciudad = "Madrid"; // Válido
$edad_2 = 25; // Válido
$_contador = 0; // Válido
$2edad = 30; // ¡Inválido! No puede empezar con número
$mi_nombre = "Juan"; // Válido (guion bajo en lugar de espacio)
?>
Para crear una variable, usa el operador =
para asignarle un valor:
<?php
$ciudad = "Madrid"; // $ciudad vale "Madrid"
$ciudad = "Zaragoza"; // Ahora vale "Zaragoza"
$Ciudad = "Barcelona"; // Variable distinta por la mayúscula
?>
Si el valor es texto (una cadena, o string), debe ir entre comillas ("
o '
). Los números no necesitan comillas.
Tipos de variables
Las variables pueden guardar diferentes tipos de valores:
- Integer: Número entero (por ejemplo,
5
). - Float: Número con decimales (por ejemplo,
3.14
). - String: Texto o caracteres (por ejemplo,
"Hola"
). - Boolean: Verdadero (
true
) o falso (false
). - Array: Lista de valores (lo veremos más adelante).
- Null: Sin valor.
Ejemplo:
<?php
$entero = 1; // Integer
$decimal = 1.5; // Float
$texto = "Hola"; // String
$es_verdadero = true; // Boolean
$sin_valor = null; // Null
$fecha = date("Y"); // String (año actual)
?>
Nota: Usa comillas para cadenas y resultados de
funciones que devuelven texto. Números, true
, false
, y null
van sin comillas.
Operaciones con variables
Puedes usar variables para cálculos o combinar texto:
<?php
$precio = 10;
$cantidad = 3;
$total = $precio * $cantidad;
echo "El total es: $total\n"; // Imprime: El total es: 30
$nombre = "Ana";
$saludo = "¡Hola, " . $nombre . "!";
echo $saludo; // Imprime: ¡Hola, Ana!
?>
En el ejemplo, $total
almacena el resultado de multiplicar $precio
y
$cantidad
. Luego, se imprime el resultado.
El operador .
une cadenas (concatenación). También puedes incluir variables dentro
de comillas dobles:
<?php
$nombre = "Ana";
echo "¡Hola, $nombre!\n"; // Imprime: ¡Hola, Ana!
?>
Tipado (casting) de variables
PHP decide el tipo de una variable según su valor y el contexto. Por ejemplo, si sumas una cadena
numérica ("5"
) con un número (3
), PHP convierte la cadena a número:
<?php
$cadena = "5"; // String
$entero = 3; // Integer
echo $cadena + $entero; // Imprime: 8 (convierte "5" a 5)
?>
A veces demasiada flexibilidad puede provocar errores. Como ves en el ejemplo anterior, un número, según los casos, puede ser un entero, o puede ser un caracter de texto. Si tu programa espera un número entero y recibe una cadena, mostrará error.
Es buena práctica por eso comprobar el tipo de valor almacenado en la variable antes de operar con ella. Para ello usamos casting o settype()
: Casting: Pones el tipo entre paréntesis, como (int)$variable
. Es rápido, claro y la forma más común. - settype(): cambia el tipo con una función, como settype($variable, "integer")
. También unciona, pero
es menos usado.
Ejemplo:
<?php
$mivar = "3"; // String
$mivar = 2 + $mivar; // Se convierte a integer (vale 5)
$mivar = (string)123; // Forzamos a string ("123")
settype($mivar, "float"); // Cambiamos a float (123.0)
$mivar = (int)3.5; // Forzamos a integer (3)
$mivar = (bool)3.5; // Forzamos a boolean (true)
?>
Nota: Usa (int)
, (string)
,
(float)
, etc., para mantener el código limpio.
settype()
es una alternativa, pero menos común.
Averiguando el tipo de una variable
Para saber el tipo de una variable, usa gettype()
:
<?php
$mivar = "123";
echo gettype($mivar) . "\n"; // Imprime: string
$mivar = 123;
echo gettype($mivar) . "\n"; // Imprime: integer
?>
Chequeando tipos concretos
Si quieres verificar si una variable es de un tipo especÃfico, usa funciones como is_string()
, is_int()
, etc. Devuelven true
(1) o false
(0):
<?php
$mivar = "123"; // entrecomillado: es una cadena
echo is_string($mivar) . "\n"; // Imprime: 1 (true)
echo is_int($mivar) . "\n"; // Imprime: 0 (false)
$mivar = 123;
echo is_int($mivar) . "\n"; // Imprime: 1 (true)
?>
Otras funciones útiles para trabajar con variables:
is_array()
- Verifica si es un array.is_bool()
- Comprueba si es un booleano.is_float()
- Determina si es un número decimal (también para doubles).is_int()
(ois_integer()
) - Indica si es un entero.is_null()
- Comprueba si el valor esnull
.is_numeric()
- Verifica si el valor es un número o si puede interpretarse como un número, incluyendo cadenas numéricas.is_string()
- Determina si el valor es una cadena de texto.is_object()
- Indica si es un objeto.is_resource()
- Comprueba si es un recurso.is_scalar()
- Verifica si es uninteger
,float
,string
oboolean
.
Nota importante: Los datos de formularios (GET
o POST
) siempre llegan como string. Un número enviado por un
formulario no pasará is_int()
, pero sà is_numeric()
:
<?php
$entrada = "123"; // Simula un dato de formulario
echo is_int($entrada) . "\n"; // Imprime: 0 (false)
echo is_numeric($entrada) . "\n"; // Imprime: 1 (true)
?>
Valores por referencia
Normalmente, asignar un valor a una variable crea una copia. Pero con referencias,
haces que dos variables apunten al mismo valor, como si fueran apodos para el mismo dato.
Usa el operador &
:
<?php
$puntos = 10; // Puntos iniciales
$mostrar = &$puntos; // Referencia a $puntos
$mostrar += 5; // Sumamos 5
echo "$puntos, $mostrar"; // Imprime: 15, 15 (¡ambos cambiaron!)
?>
Ejemplo práctico (contador en función): Imagina que quieres contar visitas sin devolver el valor:
<?php
function contar_visita(&$contador) { // & modifica la variable original
$contador++;
}
$visitas = 0;
contar_visita($visitas);
echo $visitas; // Imprime: 1
//ahora a la misma función pasamos una variable. El valor original no se modifica
function contar_visitas($contador) {
$contador++;
}
$visitas = 10;
contar_visitas($visitas);
echo $numero; // Salida: 10 (la función no modificó la variable original)
?>
Las referencias son útiles para: - Modificar variables dentro de funciones. - Ahorrar memoria con datos grandes. - Sincronizar cambios entre variables.
Variables constantes
Las constantes son valores que una vez definidas no cambian durante la ejecución del
script. Se definen con define()
o const
y no usan $
:
<?php
define("AUTOR_EMAIL", "blah@miemail.com"); // Con define()
const SITIO = "miweb.com"; // Con const
echo AUTOR_EMAIL . "\n"; // Imprime: blah@miemail.com
echo SITIO . "\n"; // Imprime: miweb.com
// "\n" inserta un salto de lÃnea
?>
Diferencias: - define()
: Flexible, se
usa en cualquier parte (incluso en condicionales).
- const
: Más limpio, pero solo en el ámbito global o clases.
Verificar constantes: Usa defined()
para comprobar si existe:
<?php
if (defined("AUTOR_EMAIL")) {
echo "La constante está definida.\n";
}
?>
Constantes predefinidas:
PHP ofrece muchas constantes predefinidas, estos son solo algunos ejemplos:
<?php
echo __FILE__ . "\n"; // Nombre del archivo
echo __LINE__ . "\n"; // LÃnea actual
echo PHP_VERSION . "\n"; // Versión de PHP
echo PHP_OS . "\n"; // Sistema operativo
echo TRUE . "\n"; // 1 (verdadero)
echo FALSE . "\n"; // (vacÃo, falso)
echo NULL . "\n"; // (vacÃo, sin valor)
?>
Variables de variables
Puedes usar el valor de una variable como el nombre de otra variable:
<?php
$var = "ciudad";
$$var = "Madrid"; // Crea $ciudad con valor "Madrid"
echo $ciudad; // Imprime: Madrid
?>
Ejemplo práctico (formulario): Supongamos que procesas campos de un formulario dinámicamente:
<?php
$campo = "nombre";
$$campo = "Ana"; // Crea $nombre con valor "Ana"
echo $nombre; // Imprime: Ana
$campo = "edad";
$$campo = 25; // Crea $edad con valor 25
echo $edad; // Imprime: 25
?>
Esto es útil para: - Crear variables dinámicamente (por ejemplo, desde formularios). - Configurar nombres basados en bucles o datos externos.
Advertencia: Úsalas con cuidado, porque pueden hacer el código confuso.
Siguiente
Alcance de variables (global, local, estático) y su uso.