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 ?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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 ?
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:
$id é nullidPor isso a classe precisa permitir null nesse atributo, senão o PHP reclamaria quando você criasse um Produto sem passar um ID.