3
respostas

Notice Undefined offset : 1

// No teste do cadastro com os campos em branco tenho o erro ( Notice Undefined offset: 1 .... on line 24 -> if($nomesobrenome[1] === null ){

<?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;
    }


}
3 respostas

Oi Regis,

Estava verificando aqui e este erro pode acontecer quando não existe nada na segunda posição do array, no caso a posição $nomesobrenome[1] que contém o sobrenome.

Qual o dado que você está colocando no formulário? para este formulário funcionar a gente precisa digitar um nome com um sobrenome separado por espaço, se for uma palavra só não vai funcionar.

Tenta colocar um nome e um sobrenome no campo, caso não consiga avisa aqui e me manda um github com todo o seu código para a gente verificar.

Giovanni, Obrigado pela análise. Inserir nome e sobrenome com espaço funciona. O que está dando erro é quando o usuário enviar o formulário com os campos vazios https://github.com/rnumata/alura_PHP/tree/master/projeto_Alura

Entendi!! isso é um ponto muito legal que não é abordado no curso, mas se você quiser fazer, você pode colocar algo assim dentro da sua classe Usuario:

        if($nome === ""){
            $this->nome = "NOME INVÁLIDO";
        } 

Isso depois dos outros ifs que estão no construtor :) se não conseguir me avisa.