2
respostas

Atributos não inicializado

Olá. Diferentemente do exemplo da aula 05 (Mais sobre métodos), ao rodar o arquivo banco.php e executar o dump da variável, em meu terminal os atributos 'cpfTitular' e 'nomeTitular' aparecem "não inicializados" em vez de conterem o valor NULL.

object(Conta)#1 (1) {
  ["cpfTitular":"Conta":private]=>
  uninitialized(string)
  ["nomeTitular":"Conta":private]=>
  uninitialized(string)
  ["saldo":"Conta":private]=>
  float(0)
}

Ao que se deve essa diferença?

2 respostas

Olá, André! Tudo bem?

Gostaria de pedir desculpas pela demora em responder o seu tópico.

Você poderia me mandar o seu código da Classe Conta e do arquivo banco.php para que eu consiga te ajudar de uma forma mais assertiva?

Fico no aguardo :)

Ao que se deve essa diferença?

Sua versão do PHP é mais recente do que a utilizada no curso. No curso eu não pude utilizar propriedades tipadas. Uma prorpiedade que não possua seu tipo definido tem o valor "inicial" de nulo, enquanto propriedades tipadas se comportam de forma diferente, sendo "não inicializadas" ao invés de nulas.

Aqui está a RFC que explica esse comportamento: https://wiki.php.net/rfc/typed_properties_v2#uninitialized_and_unset_properties

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software