Avatar ·

O que é null/nil em PHP e como trabalhar com ele?

Olá a todos! Sou novo em PHP e estou tentando entender o tipo null (ou nil, como às vezes é chamado). Na documentação diz que é um valor especial que significa «ausência de valor», mas na prática estou tendo erros estranhos.

Por exemplo, escrevo um código simples:

$user = getUserFromDatabase($id); // a função pode retornar null se o usuário não for encontrado
echo $user->name;

Se o usuário for encontrado, tudo funciona, mas se não for — aparece o erro "Trying to get property 'name' of non-object". Entendo que preciso verificar se é null, mas como fazer isso corretamente? Tentei if ($user != null) e if (is_null($user)), mas às vezes o comportamento é diferente. Também ouvi falar do operador ?? (null coalescing) — ele funciona apenas para variáveis ou também para propriedades?

Outra pergunta: como diferenciar null de uma string vazia ou false? Tive uma situação em que