Variables y Constantes
Las variables son contenedores que almacenan datos durante la ejecución de tu programa. Las constantes son similares, pero su valor no puede cambiar. En esta lección aprenderás a crear y usar ambas correctamente.
Variables en PHP
En PHP, las variables se identifican con el
símbolo $ seguido del nombre. No
necesitas declarar el tipo de dato; PHP lo
infiere automáticamente.
<?php
// Declarar variables
$nombre = 'Carlos';
$edad = 28;
$precio = 19.99;
$activo = true;
// Usar variables
echo "Hola, $nombre\n";
echo "Tienes $edad años\n";
// Reasignar valores
$edad = 29;
echo "Ahora tienes $edad años\n";
Reglas para nombrar variables
- Deben empezar con
$ -
El nombre debe comenzar con letra o guion
bajo
_ - Pueden contener letras, números y guiones bajos
-
Son case-sensitive:
$nombrey$Nombreson diferentes - No pueden contener espacios ni caracteres especiales
<?php
// Nombres válidos
$nombre = 'Ana';
$_privado = 'valor';
$usuario1 = 'Pedro';
$totalDeVentas = 100;
// Nombres inválidos (causarán error)
// $1usuario = "error"; // No puede empezar con número
// $mi-variable = "error"; // No puede tener guiones
// $mi variable = "error"; // No puede tener espacios
En PHP se usa
camelCase para
variables: $nombreUsuario,
$totalFactura. Algunas
librerías usan snake_case:
$nombre_usuario. Lo
importante es ser consistente en tu
proyecto.
Constantes
Las constantes almacenan valores que no cambian durante la ejecución. Son ideales para configuración, valores fijos y "números mágicos".
Definir constantes con const
<?php
// Definir constantes (sin $, por convención en MAYÚSCULAS)
const PI = 3.14159;
const APP_NAME = 'Mi Aplicación';
const MAX_USUARIOS = 100;
const DEBUG = true;
// Usar constantes
echo APP_NAME . "\n";
echo "El valor de PI es: " . PI . "\n";
// Esto causaría error:
// PI = 3.14; // No se puede reasignar una constante
Definir constantes con define()
La función define() es la forma
tradicional de crear constantes. Permite definir
constantes de forma condicional.
<?php
// Definir con define()
define('VERSION', '1.0.0');
define('BASE_URL', 'https://ejemplo.com');
// Definición condicional
if (!defined('DEBUG')) {
define('DEBUG', false);
}
echo "Versión: " . VERSION . "\n";
const vs define()
| const | define() |
|---|---|
| Se evalúa en tiempo de compilación | Se evalúa en tiempo de ejecución |
| No puede usarse en condicionales | Puede usarse en condicionales |
| Puede usarse en clases | No puede usarse dentro de clases |
| Sintaxis más limpia | Más flexible |
Usa const por defecto. Es
más rápido y la sintaxis es más clara.
Usa define() solo cuando
necesites definir constantes
condicionalmente.
Constantes predefinidas
PHP incluye muchas constantes ya definidas que son muy útiles:
<?php
// Constantes mágicas (cambian según el contexto)
echo __FILE__; // Ruta completa del archivo actual
echo __DIR__; // Directorio del archivo actual
echo __LINE__; // Número de línea actual
echo __FUNCTION__; // Nombre de la función actual
echo __CLASS__; // Nombre de la clase actual
echo __METHOD__; // Nombre del método actual
// Constantes de PHP
echo PHP_VERSION; // Versión de PHP
echo PHP_EOL; // Salto de línea del sistema
echo PHP_INT_MAX; // Entero máximo soportado
Scope (alcance) de variables
El scope determina dónde puede usarse una variable. PHP tiene tres tipos de scope:
Scope global
Variables definidas fuera de funciones. Para
usarlas dentro de una función, necesitas la
palabra clave global.
<?php
$mensaje = 'Hola';
function saludar() {
global $mensaje; // Acceder a variable global
echo $mensaje;
}
saludar(); // Imprime: Hola
Scope local
Variables definidas dentro de una función. Solo existen durante la ejecución de esa función.
<?php
function calcular() {
$resultado = 10 + 5; // Variable local
return $resultado;
}
echo calcular(); // 15
// echo $resultado; // Error: variable no definida fuera de la función
Variables estáticas
Variables locales que mantienen su valor entre llamadas a la función.
<?php
function contador() {
static $count = 0; // Se inicializa solo una vez
$count++;
return $count;
}
echo contador(); // 1
echo contador(); // 2
echo contador(); // 3
Usar global hace el código
difícil de mantener y testear. Es mejor
pasar variables como parámetros o usar
inyección de dependencias. Lo veremos en
lecciones posteriores.
Variables variables
PHP permite crear nombres de variables dinámicamente (aunque rara vez es necesario):
<?php
$nombreVariable = 'saludo';
$$nombreVariable = 'Hola Mundo'; // Crea $saludo
echo $saludo; // Hola Mundo
echo $$nombreVariable; // Hola Mundo (equivalente)
Ejercicios
Ejercicio 1: Datos personales
Crea variables para almacenar tu nombre, edad y ciudad. Luego imprime una frase que diga "Me llamo [nombre], tengo [edad] años y vivo en [ciudad]".
Ver solucion
<?php
declare(strict_types=1);
$nombre = 'Carlos';
$edad = 28;
$ciudad = 'Madrid';
echo "Me llamo $nombre, tengo $edad años y vivo en $ciudad\n";
Ejercicio 2: Constantes de configuracion
Define tres constantes para una aplicacion: APP_NAME con el valor "Mi Blog", APP_VERSION con "1.0.0" y MAX_POSTS con el valor 10. Luego imprime un mensaje que muestre las tres constantes.
Ver solucion
<?php
declare(strict_types=1);
const APP_NAME = 'Mi Blog';
const APP_VERSION = '1.0.0';
const MAX_POSTS = 10;
echo "Aplicacion: " . APP_NAME . "\n";
echo "Version: " . APP_VERSION . "\n";
echo "Maximo de posts: " . MAX_POSTS . "\n";
Ejercicio 3: Reasignacion de variables
Crea una variable $contador con
valor 0. Incrementa su valor 3 veces usando el
operador += y muestra el valor
despues de cada incremento.
Ver solucion
<?php
declare(strict_types=1);
$contador = 0;
echo "Valor inicial: $contador\n";
$contador += 1;
echo "Despues del primer incremento: $contador\n";
$contador += 1;
echo "Despues del segundo incremento: $contador\n";
$contador += 1;
echo "Despues del tercer incremento: $contador\n";
¿Has encontrado un error o tienes una sugerencia para mejorar esta lección?
Escríbenos¿Te está gustando el curso?
Tenemos cursos premium con proyectos reales y soporte personalizado.
Descubrir cursos premium