Ir para conteúdo
Fórum Script Brasil
  • 0

retornar array de uma função


vini_loock

Pergunta

Olá eu estou fazendo uma função para validar meus campos, mas eu preciso retornar um array com os erros, e depois usa-los.

$erro = array();
    
    function valida($campo, $texto){
        //VALIDAÇÃO DO CAMPO NOME
        if($texto != ''){
            if(!ereg("^[a-zA-ZãÃáÁàÀâÂêÊéÉèÈíÍìÌôÔõÕóÓòÒúÚùÙûÛçǺª' ']+$", $texto)){
                $numArray = count($erro);
                if($numArray == 0){
                    $erro[0] = 'O campo '.$campo.' só aceita letras.';
                }else{
                    $novoNum = $numArray++;
                    $erro[$novoNum] = 'O campo '.$campo.' não pode ficar em branco.';
                }        
            }
        }else{
            $numArray = count($erro);
            if($numArray == 0){
                $erro[0] = 'O campo '.$campo.' não pode ficar em branco.';
            }else{
                $novoNum = $numArray++;
                $erro[$novoNum] = 'O campo '.$campo.' não pode ficar em branco.';
            }
        }
        
        return $erro[0];
    }
    
    valida('Nome', $nome);
    valida('Sobre Nome', $snome);
    valida('Login', $login);

        $num = count($erro);
    
    if($num == '0' && $erro[0] == ''){
        echo 'cadastrado com sucesso.';    
    }else{
        echo 'erro ao cadastrar:<br />';
        for($i = 0; $i < count($erro); $i++){
            echo $i.' - '.$erro[$i].'<br />';    
        }
    }

Eu já li sobre o return arra(), mas não consegui aplicar a esta função.

Eu já fiz para retornar manualmente(return $erro[1]), mas depois eu não consegui usar na parte final do código, que é a parte onde ele verifica se foi encontrado algum erro e exibe-os.

Qualquer ajuda é bem vinda.

Vlw.

Vinicius

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
Olá eu estou fazendo uma função para validar meus campos, mas eu preciso retornar um array com os erros, e depois usa-los.
$erro = array();
    
    function valida($campo, $texto){
        //VALIDAÇÃO DO CAMPO NOME
        if($texto != ''){
            if(!ereg("^[a-zA-ZãÃáÁàÀâÂêÊéÉèÈíÍìÌôÔõÕóÓòÒúÚùÙûÛçǺª' ']+$", $texto)){
                $numArray = count($erro);
                if($numArray == 0){
                    $erro[0] = 'O campo '.$campo.' só aceita letras.';
                }else{
                    $novoNum = $numArray++;
                    $erro[$novoNum] = 'O campo '.$campo.' não pode ficar em branco.';
                }        
            }
        }else{
            $numArray = count($erro);
            if($numArray == 0){
                $erro[0] = 'O campo '.$campo.' não pode ficar em branco.';
            }else{
                $novoNum = $numArray++;
                $erro[$novoNum] = 'O campo '.$campo.' não pode ficar em branco.';
            }
        }
        
        return $erro[0];
    }
    
    valida('Nome', $nome);
    valida('Sobre Nome', $snome);
    valida('Login', $login);

        $num = count($erro);
    
    if($num == '0' && $erro[0] == ''){
        echo 'cadastrado com sucesso.';    
    }else{
        echo 'erro ao cadastrar:<br />';
        for($i = 0; $i < count($erro); $i++){
            echo $i.' - '.$erro[$i].'<br />';    
        }
    }

Eu já li sobre o return arra(), mas não consegui aplicar a esta função.

Eu já fiz para retornar manualmente(return $erro[1]), mas depois eu não consegui usar na parte final do código, que é a parte onde ele verifica se foi encontrado algum erro e exibe-os.

Qualquer ajuda é bem vinda.

Vlw.

Vinicius

tene isso

<?php

class Erros{

var $Erros;

var $Valid;

function Validar($Tipo,$Campo,$Texto)

{

$this->Valid=S';

switch ($Tipo)

{

case 1: /* so permite texto incluindo acento e ç */

if (empty($Campo)){ $Erro[]='A variavél campo está em branco.'; $this->Valid='N';}

if (empty($Texto)){ $Erro[]="O campo $Campo está em branco."; $this->Valid='N';}

if(!ereg("^[a-zA-ZãÃáÁàÀâÂêÊéÉèÈíÍìÌôÔõÕóÓòÒúÚùÙûÛçǺª' ]+$", $Texto))

{

$Erro[]="O campo $Campo deve ser preenchido somente com letras.";

$this->Valid='N';

}

$this->Erros=$Erro;

break;

default:

$Erro[]='Tipo de operação inexperada.';

break;

}

} /* final da função */

function __construct($Tipo,$Campo,$Texto)

{

$this->Validar($Tipo,$Campo,$Texto);

}

} /* final da classe */

/* exemplo de utilização */

$Validar=new Erros(1,'nome','Ola tudo bem');

if ($Validar->Valid=='N')

{

$i=1;

foreach($Validar->Erros as $chave => $des)

{

if ($i==1){ echo "<span style='background-color:#D0D0D0; font:bold 16 arial; color: blue; border:2px orange solid;'>"; }

echo "$i) $des<br />";

$i++;

}

echo "</span>";

}

else

{

echo "Ok ";

}

qualquer duvida é so postar até mais

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...