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?
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?
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.
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?