1
resposta

Duvida do Regis

Boa tarde , verificando o código do Regis abaixo :

<?php


namespace Alura;


class Usuario
{

    private $nome;
    private $sobrenome;

    public function __construct(string $nome)
    {

        $nomesobrenome = explode(" ", $nome, 2);


        if ($nomesobrenome[0] === " ") {
            $this->nome = "NOME INVÁLIDO";
        } else {
            $this->nome = $nomesobrenome[0];
        }


        if ($nomesobrenome[1] === null) {
            $this->sobrenome = "SOBRENOME INVÁLIDO";
        } else {
            $this->sobrenome = $nomesobrenome[1];
        }

    }


    public function getNome(): string
    {
        return $this->nome;
    }


    public function getSobrenome(): string
    {
        return $this->sobrenome;
    }


}

Ele havia informado que não aparecia o 'nome invalido'. Analisando o código podemos perceber que no primeiro if esta com espaço entre as " ".

if ($nomesobrenome[0] === " ") {
            $this->nome = "NOME INVÁLIDO";
        } else {
            $this->nome = $nomesobrenome[0];
        }

Neste caso deve se retirar os espaços.

1 resposta

Olá, Daniel!

Desculpa a demora por um retorno!

Obrigado por compartilhar a dúvida do Regis conosco e a sua observação através dela. Analisando o código fornecido, realmente é possível perceber que o primeiro if está comparando se o primeiro elemento do array $nomesobrenome é igual a um espaço em branco (" ").

Para corrigir esse problema e exibir a mensagem "NOME INVÁLIDO" quando o nome estiver em branco, podemos simplesmente remover o espaço em branco dentro das aspas, deixando o trecho de código da seguinte forma:

if ($nomesobrenome[0] === "") {
    $this->nome = "NOME INVÁLIDO";
} else {
    $this->nome = $nomesobrenome[0];
}

Mais uma vez, muito obrigada por compartilhar essa questão conosco aqui no fórum e ajudar a construir uma comunidade mais forte!

Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!