Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Uma duvida sobre tipagem no php 7,4

Se eu tipar os atributos diretamente pelos atributos como:

private string $cidade; private string $bairro;

eu preciso tipar esses atributos no construtor também?

public function __construct(string $cidade, string $bairro){} ou não?

2 respostas

Rodrigo, Tudo bem contigo?

A principio não é preciso tipar no construtor. Se for possível o PHP vai fazer o cast do tipo e atribuir o valor.

Mas entendo que é uma boa prática que você especifique o tipo que deseja receber para aquela variável ou valor.

Como matéria adicional eu te sugiro estudar um pouco sobre o PHP strict typing.

No modo strict ( "restrito, preciso") apenas uma variável do tipo exato da declaração será aceita, ou um TypeErros será lançado.

Experimente testar o teu código com esta linha abaixo e pesquisar esta expressão. Quando você faz esta declaração no começo do arquivo o PHP vai ativar o modo strict e vai gerar o TypeError se você informar um tipo diferente.

<?php 

declare(strict_types = 1);

class Endereco
{
    ...

Espero ter te ajudado! Bons estudos.

solução!

Fala, Rodrigo!

O ideal é tipar sim, porque senão uma pessoa pode passar o parâmetro utilizando o tipo errado e aí o erro vai estourar só dentro da sua classe ao tentar atribuir o valor à propriedade em questão.

Com o tipo, o erro vai estourar no código da pessoa informando que ela passou um tipo inválido, entende?