1.1 · Variables, tipos y operadores

Nivel 1 · Fundamentos del lenguaje

1.1Variables, tipos y operadores

Objetivo: almacenar datos en variables de tipado dinámico, calcular y comparar con los operadores (incluido ===, a priorizar), y dominar la concatenación y las comillas.
Tiempo estimado: 11 min · lectura autónoma · Si solo tienes 5 min: lee «Lo esencial en 30s» + el esquema.

Lo esencial en 30 segundos

  • Variable = $ + nombre claro, tipado dinámico: $prixTotal = 1200; — PHP deduce el tipo del valor (string, int, float, bool, array, null, object).
  • Concatenar con el PUNTO, nunca con +: 'Bonjour ' . $nom — el + no une las cadenas en PHP.
  • Comparar en ESTRICTO por defecto: === (valor Y tipo, previsible) en lugar de == (conversión automática, errores y fallos).

Minicaso hilado — Riad, desarrollador web en Constantine

Riad, desarrollador web en Constantine, prepara el presupuesto de un sitio vitrina: guarda el precio sin impuestos en $prixHT, calcula el IVA con los operadores aritméticos y luego muestra « Total : » seguido del importe. Con prisa, une el mensaje con + y compara el código promocional introducido ("5") con el número 5 usando ==: la visualización muestra 0 en lugar del texto, y un código promocional inesperado supera la comparación. Lo corrige concatenando con el punto y comparando con ===: el presupuesto se muestra correctamente y solo se aceptan los verdaderos códigos promocionales.

Este mismo caso reaparece en el curso, el esquema, el script y el reto 48h — y continúa en 1.2, 1.3, 1.4 y 1.5.

1. Variables y tipos

Una variable empieza siempre por $ ($nom), asignada con = ($age = 30;). PHP tiene un tipado dinámico: el tipo sigue al valor, sin declaración previa — una variable puede cambiar de tipo a lo largo del código. Tipos a conocer: string (texto), int (entero), float (decimal), bool (true/false), array (array), null, object. Ponga nombres claros a sus variables ($prixTotal en lugar de $x): el nombrado explícito es una clave de legibilidad.

Riad guarda $prixHT = 10000; y $client = "Yasmine";: nombres que dicen lo que contienen, releídos sin esfuerzo tres semanas después cuando el cliente pide una modificación.

2. Operadores, === y comillas

Operadores: aritméticos (+ - * / % **), asignación (=, +=…), comparación, lógicos (&& || !). La concatenación usa el PUNTO . (¡no +!). CRUCIAL: == compara con conversión de tipo (« flexible », resultados sorprendentes); === compara valor Y tipo (« estricto ») — priorice ===. Las comillas dobles interpretan las variables ("Bonjour $nom"); las simples = literal ('Bonjour $nom').

Riad sustituye su + por un . para unir « Total : » y el importe, y su == por === para el código promocional: la visualización se vuelve correcta y la comparación previsible.

Error frecuente de interpretación: « + une las cadenas » o « == y === son intercambiables ». No. En PHP, + es un operador aritmético: 'Bonjour ' + $nom no concatena (use el punto .). Y == convierte los tipos antes de comparar ('5' == 5 vale true), mientras que === exige valor Y tipo idénticos ('5' === 5 vale false) — no es estilo, es corrección, incluso seguridad.
Variables y operadores Almacenar, calcular, comparar Variable ($) Tipado dinámico(el tipo sigue al valor)Concatenación ElPUNTO . (no +)== vs === Estricto ===a priorizar
Almacenar, calcular, comparar
Versión en texto del esquema (SEO / lectores de pantalla / traducción): 1) Almacenar: Riad declara $prixHT y $client con nombres explícitos — PHP deduce el tipo de cada valor. 2) Calcular y unir: operadores aritméticos para el IVA, PUNTO para concatenar el mensaje — nunca + para las cadenas. 3) Comparar: === (valor Y tipo) para el código promocional, ningún == con conversión sorpresa; dobles para interpretar, simples para lo literal. Lección: $ + punto + ===, y los fundamentos ya no engañan.

🔎 Ejemplo concreto — 🔎 Ejemplo concreto — === vs == y comillas

Evitar las sorpresas, como Riad con su presupuesto.

$nom = 'Riad';
echo "Bonjour $nom"; // Hola Riad (interpreta)
echo 'Bonjour $nom'; // Bonjour $nom (literal)
$message = 'Total : ' . 12000; // concatenación con el punto
echo $message;
var_dump('5' == 5); // true (conversión flexible)
var_dump('5' === 5); // false (tipo diferente)

Lectura: las dobles muestran el valor, las simples el texto bruto; el punto une, === fija el tipo.

Lección: comparaciones previsibles y visualización dominada — el reflejo === por defecto.

Vocabulario de la sección

Variable ($)
Almacena un dato; empieza siempre por $ ($nom), asignada con =. Nombre sensible a mayúsculas, a elegir claro y expresivo.

Ejemplo sencillo: El $prixHT y el $client del presupuesto de Riad.

Lo que no es: un $x críptico cuyo contenido nadie adivina.

Reflejo: siempre $, nombre explícito, mayúsculas coherentes.

Tipado dinámico
PHP determina el tipo según el valor (sin declaración previa); una variable puede cambiar de tipo. Tipos: string, int, float, bool, array, null, object.

Ejemplo sencillo: El $prixHT de Riad, entero y luego decimal tras el IVA.

Lo que no es: declarar el tipo por adelantado como en un lenguaje compilado.

Reflejo: pensar primero en el valor, verificar con var_dump en caso de duda.

Operadores
Aritméticos (+ - * / % **), asignación (=, +=…), comparación (==, ===, !=, <, >…), lógicos (&& || !).

Ejemplo sencillo: El cálculo del IVA de Riad ($prixHT * 1.19).

Lo que no es: usar + para unir dos cadenas.

Reflejo: calcular con los operadores, unir con el punto.

Concatenación (.)
En PHP, las cadenas se unen con el PUNTO . (no +): 'Bonjour ' . $nom.

Ejemplo sencillo: El « Total : » . $montant mostrado por Riad.

Lo que no es: 'Total : ' + $montant, que calcula en lugar de unir.

Reflejo: cadenas a unir = punto, siempre.

== vs === / comillas
== compara con conversión de tipo (flexible, sorprendente); === compara valor Y tipo (estricto, a priorizar). Las dobles interpretan las variables, las simples = literal.

Ejemplo sencillo: El código promocional probado en === por Riad; su mensaje en dobles.

Lo que no es: validar un token sensible con ==.

Reflejo: === por defecto; dobles para interpretar, simples si no.

En la práctica — En la práctica — Manipular variables, tipos y operadores

  1. Declare variables de distintos tipos (string, int, float, bool) con `$` y muéstrelas; observe el tipado dinámico.
  2. Haga cálculos con los operadores aritméticos (incluido % módulo) y concatene cadenas con el PUNTO `.` (no `+`).
  3. Compare con `==` y luego `===` una cadena y un número (ej. '5' y 5): observe la diferencia (conversión vs estricto) y priorice `===`.
  4. Pruebe las comillas: `"Bonjour $nom"` (interpreta la variable) vs `'Bonjour $nom'` (literal) — constate la diferencia.
Almacena datos en variables de tipado dinámico, calcula y compara con los operadores (incluido === a priorizar), y domina la concatenación y las comillas — la base de toda lógica.

Script listo para decir — justificar === en revisión de código (30 s)

« Propongo que comparemos en === en todas partes aquí: con ==, PHP convierte los tipos y un código promocional inesperado puede colarse. Lo estricto hace la comparación previsible, y para los valores sensibles también es una cuestión de seguridad. »

Para decir en revisión de código; mostrar el var_dump('5' == 5) frente a ===.

Modelo copiar-pegar — variables, concatenación, comparación estricta

Presupuesto en Constantine

Como Riad: precio sin impuestos, IVA y total en variables con nombre, mensaje unido con el punto — el cliente relee un presupuesto nítido, sin cifras fantasiosas.

Código promocional a validar

Comparar lo introducido con el código esperado en ===: ninguna conversión sorpresa, solo pasan los códigos exactos.

Visualización con variables

Dobles cuando el texto contiene variables ("Bonjour $nom"), simples para el texto puro — y concatenación explícita como alternativa.

Duda sobre un tipo

Un var_dump($variable) en local lo aclara: el tipado dinámico se verifica, no se adivina.

✓ Buenas prácticas

  • Priorizar === / !== por defecto (comparación estricta, previsible).
  • Concatenar las cadenas con el punto (nunca +).
  • Nombrar las variables con claridad y mantener la coherencia (mayúsculas).

✗ Errores frecuentes

  • Usar == y sufrir una conversión de tipo sorprendente.
  • Concatenar con + (no existe para las cadenas en PHP).
  • Esperar que 'Bonjour $nom' (comillas simples) muestre el valor.

Puntos clave

  • Una VARIABLE empieza siempre por `$` (`$nom`), asignada con `=`. PHP tiene un TIPADO DINÁMICO (el tipo sigue al valor). Tipos: string, int, float, bool, array, null, object.
  • CONCATENACIÓN de las cadenas con el PUNTO `.` (¡NO `+`!). Operadores: aritméticos (+ - * / % **), asignación (+=…), comparación, lógicos (&& || !).
  • CRUCIAL: `==` compara con conversión de tipo (flexible, sorprendente); `===` compara valor Y tipo (estricto) — PRIORIZAR `===` / `!==`.
  • Las comillas DOBLES interpretan las variables (`"Bonjour $nom"`); las comillas SIMPLES = literal (`'Bonjour $nom'`). Nombrar las variables con claridad (legibilidad).

Reto 48h — aplique mañana

Retome uno de sus scripts (modelo anterior): sustituya cada == por === (salvo conversión deseada), cada + entre cadenas por un punto, y renombre una variable críptica. Ejecute en local y verifique la visualización. 20 minutos bastan.

Lista de salida de la sección
  • Puedo explicar $, el tipado dinámico y la concatenación con el punto.
  • Comparo en === por defecto y sé por qué.
  • Elijo dobles (interpretan) vs simples (literal) sin dudar.
Autoevaluación 1-5: ¿escribo === por reflejo en lugar de ==?¿mis variables tienen nombres claros y mis cadenas están unidas con el punto?

Preguntas frecuentes

¿Por qué priorizar === en lugar de == en PHP, y qué errores evita?

`==` compara dos valores efectuando una CONVERSIÓN automática de tipo si los tipos difieren (comparación « flexible »), lo que da resultados sorprendentes y contraintuitivos. `===` compara el valor Y el tipo, SIN conversión (« estricto »), por tanto previsible. Los errores que `==` puede causar: comparar una cadena y un número (conversiones desconcertantes), las trampas de los valores « falsy » (0, '', '0', null, [] considerados « falsos »), y sobre todo casos peligrosos — históricamente, comparaciones de hashes o tokens mal hechas con `==` han causado fallos de seguridad. PHP 8 corrigió algunos casos absurdos, pero el principio permanece: `==` convierte, `===` no. Buena práctica: use `===` (y `!==`) por DEFECTO; si debe comparar tipos mezclados, CONVIERTA explícitamente primero (control) en lugar de sufrir la conversión implícita.

¿Comillas simples o dobles: qué diferencia hay y cuál usar?

Comillas DOBLES `"..."`: INTERPRETAN el contenido — las variables (`"Bonjour $nom"` inserta el valor) y las secuencias de escape (`\n`, `\t`). Comillas SIMPLES `'...'`: toman el contenido LITERALMENTE — `'Bonjour $nom'` muestra el texto « Bonjour $nom » (no el valor). Buenas prácticas: comillas SIMPLES por defecto para texto puro (más previsible); comillas DOBLES cuando quiera interpretar variables; alternativa recomendada: la CONCATENACIÓN con el punto (`'Bonjour ' . $nom`), explícita y previsible. Vigilancia: un `$` accidental en comillas dobles puede causar un comportamiento inesperado.

Comprueba tu comprensión

¿Qué comparación priorizar en PHP moderno?

Recursos adicionales (opcional, para ir más allá)

Examen del nivel 1Preguntas inéditas y más difíciles para validar tus conocimientos