Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Fiquei em dúvida na classe Produto

class Produto
{
    // ?int -> a ? siginifica que pode receber um inteiro ou um valor null
    private ?int $id;

Ele deixa ser null, por conta do auto_incremet do banco ?

1 resposta
solução!

Oii, Edvan.

Exatamente!

No seu caso, o atributo

private ?int $id;

significa que $id pode receber um número inteiro ou null.

Isso é útil porque, quando você cria um novo produto para cadastrar, ele ainda não tem um ID, quem vai gerar esse valor é o banco de dados, graças ao AUTO_INCREMENT da coluna id.

Ou seja:

  • Antes de salvar no banco$id é null
  • Depois de salvar → o banco atribui um número automaticamente para id

Por isso a classe precisa permitir null nesse atributo, senão o PHP reclamaria quando você criasse um Produto sem passar um ID.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!