2
respostas

DateTimeImmutable

Por que usar uma contra barra antes do DateTimeImmutable (\DateTimeImmutable)? Verifiquei que ela funciona normalmente sem a contra barra.

2 respostas

Olá, Victor. Tudo bem?

Estranho, no projeto do curso não era para funcionar sem o contrabarra \.

Utilizamos o contrabarra \ quando nós precisamos acessar uma classe que está no namespace padrão do PHP, enquanto nós estamos em outro namespace. Ou seja, na aula foi visto a seguinte expressão:

new \DateTimeImmutable('1997-10-15')

Isso significa que o PHP irá procurar essa classe no namespace raiz dele.

Se o contrabarra \ não for informado, o PHP vai procurar a classe DateTimeImmutableno namespace atual, que no exemplo do curso é:

namespace Alura\Pdo\Domain\Model;

Ou seja, ele não vai encontrar, e retornará um FATAL ERROR.

Certifique-se que você retirou todas as \ e deixe os namespaces como no curso, provavelmente será retornado um erro.

Qualquer dúvida estou à disposição, bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓

Descobri porque não deu erro. Eu chamei o "use PDO;" no começo do arquivo. Como a importação já foi feita, tanto faz usar a classe com a contra barra ou não. Mas se eu não fiz a importação, aí é obrigatório colocar a contra barra cada vez que vou usar a classe.