El error "Trying to access array offset on value of type null" en PHP ocurre cuando intentamos acceder a un índice de un array que en realidad es null
. Esto es común cuando intentamos obtener datos de una variable que no ha sido definida o cuyo valor es null
.
1. Variable no definida
echo $datos['nombre']; // Error si $datos es null
2. Acceder a un índice inexistente
$usuario = ['edad' => 25];
echo $usuario['nombre']; // Error porque 'nombre' no existe en el array
3. Datos no recibidos correctamente (Ejemplo con $_POST
o $_GET
)
echo $_POST['email']; // Error si el formulario no envió 'email'
isset()
para verificar si la clave existe
if (isset($datos['nombre'])) {
echo $datos['nombre'];
} else {
echo "Nombre no definido";
}
??
)
Desde PHP 7, podemos usar ??
para definir un valor por defecto si la variable es null
o no existe:
echo $datos['nombre'] ?? 'Valor por defecto';
array_key_exists()
Si null
es un valor válido y queremos verificar solo la existencia de la clave:
if (array_key_exists('nombre', $datos)) {
echo $datos['nombre'];
} else {
echo "Clave 'nombre' no existe en el array";
}
$_POST
o $_GET
$email = $_POST['email'] ?? 'No se recibió el email';
echo $email;
Jorge García
Fullstack developer