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