Com a introdução de dicas de tipo de propriedade no PHP 7.4, é crucial atribuir valores válidos a todas as propriedades para garantir que seus tipos declarados sejam respeitados. Uma propriedade indefinida, sem valor atribuído, não corresponde a nenhum tipo declarado e dispara a mensagem de erro: "A propriedade digitada não deve ser acessada antes da inicialização".
Por exemplo, considere o código abaixo:
class Foo { private string $val; public function __construct(int $id) { $this->id = $id; } public function getVal(): string { return $this->val; } }
Acessar $val após construir Foo resultaria em erro, pois seu tipo ainda não está definido (indefinido!== null).
Para resolver isso, atribua valores a todas as propriedades durante construção ou defina valores padrão para eles:
class Foo { private string $val = null; // default null value public function __construct(int $id) { $this->id = $id; } }
Agora, todas as propriedades têm valores válidos, eliminando o erro.
Esse problema também pode surgir ao confiar em valores de banco de dados para propriedades de entidade, como IDs gerados automaticamente ou carimbos de data/hora. Para IDs gerados automaticamente, declare-os como anuláveis:
private ?int $id = null;
Para todos os outros, escolha valores padrão apropriados que correspondam aos seus tipos.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3