Operador nullsafe y tipos unión
Utilice ?-> para encadenar de forma segura objetos que pueden ser nulos y declare sugerencias de tipos unión.
Operador nullsafe y tipos unión es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de PHP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de PHP Academy incluye 4 lecciones en total.
El operador nullsafe
PHP 8.0 introdujo ?->. Si el lado izquierdo es null, toda la cadena se detiene y devuelve null en lugar de lanzar un error.
Problema que resuelve
Sin nullsafe, encadenar objetos que pueden ser null requiere comprobaciones de null muy verbosas.
<?php
// Old way:
$city = null;
if ($user !== null && $user->getAddress() !== null) {
$city = $user->getAddress()->getCity();
}
// PHP 8 nullsafe:
$city = $user?->getAddress()?->getCity();Nullsafe con llamadas a métodos
Cada ?-> de la cadena se comprueba de forma independiente. El primer null detiene el resto de la cadena.
<?php
$name = $order?->getCustomer()?->getName() ?? "Guest";Nullsafe con propiedades
También funciona con el acceso a propiedades.
<?php
$zip = $user?->address?->zip;Nullsafe no omite efectos secundarios
Si la cadena nullsafe se detiene, las llamadas a métodos posteriores de la cadena no se ejecutan; no se producen efectos secundarios.
Tipos de unión
Los tipos de unión de PHP 8.0 permiten declarar que un parámetro, una propiedad o un valor de retorno acepta uno de varios tipos.
<?php
function formatId(int|string $id): string {
return (string) $id;
}Ejemplos de tipos de unión
Tipos de unión habituales en la práctica:
<?php
function process(int|float $amount): float {
return (float) $amount;
}
function findUser(int|string $idOrEmail): ?User {
// search by ID or email
}Tipos anulables
?Type es una abreviatura de Type|null: el valor puede ser de ese tipo o null.
<?php
function greet(?string $name): string {
return "Hello, ".($name ?? "stranger");
}null en tipos de unión
Puede incluir null explícitamente en un tipo de unión: int|string|null.
Tipos de intersección (PHP 8.1)
PHP 8.1 añadió los tipos de intersección (A&B): el valor debe cumplir todos los tipos simultáneamente. Son útiles para la inyección de dependencias con seguridad de tipos.
<?php
function process(Iterator&Countable $collection): void {
// $collection must be both Iterator AND Countable
}Coerción de tipos frente a strict_types
Sin declare(strict_types=1), PHP puede convertir tipos automáticamente, por ejemplo, de "42" a 42. En el modo estricto, solo se aceptan coincidencias exactas de tipos.
Resumen
El operador nullsafe (?->) elimina las comprobaciones de null repetitivas en las cadenas. Los tipos de unión (int|string) permiten firmas de funciones flexibles y seguras con respecto a los tipos.
Comprobación rápida
¿Qué devuelve el operador nullsafe si un método de la cadena devuelve null?
Preguntas frecuentes
¿La lección «Operador nullsafe y tipos unión» es gratis?
Sí — el texto completo de «Operador nullsafe y tipos unión» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de PHP Academy, actualiza a CoddyKit PRO. El curso de PHP Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Operador nullsafe y tipos unión»?
Utilice ?-> para encadenar de forma segura objetos que pueden ser nulos y declare sugerencias de tipos unión. Practicas PHP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar PHP Academy?
No se requiere experiencia previa. PHP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Operador nullsafe y tipos unión»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de PHP Academy?
Sí. Cada lección de PHP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Expresión match y argumentos con nombre
- Operador nullsafe y tipos unión
- Enumeraciones (Enums)
- Fibers: concurrencia cooperativa