Dica de PHP · publicada em
Propriedade sem tipo aceita qualquer valor. Se alguém atribui uma string onde deveria ir um objeto, nada acontece ali — o erro surge cinquenta linhas depois, ao chamar um método, e você começa a investigar no lugar errado.
Com propriedade tipada, a atribuição inválida falha na hora, com mensagem apontando o local exato. E propriedade tipada sem valor padrão fica em estado não inicializada, o que também vira erro claro se você ler antes de escrever.
Em plugin WordPress isso é especialmente útil nas classes que guardam WP_Post, WC_Order ou um cliente de API — justamente onde o valor vem de fora e pode ser false ou null sem você esperar.
final class RelatorioPedidos {
private \wpdb $db;
private array $filtros = [];
private ?string $cache_key = null;
public function __construct(\wpdb $db) { $this->db = $db; }
}
Na prática: tipa toda propriedade. O erro passa a aparecer onde foi causado, não onde foi usado.