Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

juniordocpd

Array de funções, tem como?

Recommended Posts

Fala aí galera do fórum, tudo bem com todo mundo?

 

Bom, primeiramente, gostaria de pedir desculpa caso o que eu estou pensando seja imaturo e não haja lógica nenhuma. Confesso que não pensei muito sobre o assunto, então, talvez a pergunta que eu passa possa ser uma pergunta de "usuário" mesmo, ao invés de alguém que entende um pouquinho sobre informática.

 

Galera, é o seguinte, eu estou construindo uma página de cadastro em PHP, onde possui um formulário e alguns campos. Dependendo de como o cara preencher o formulário, o PHP vai fazer a inserção no banco de dados MySQL, caso contrário, ele apresenta os erros na tela. Mas como eu tenho vários campos, gostaria de saber se tem como eu fazer um array com o nome dos campos, um array com o nome das funções, um array com as resposta e juntar tudo isso.

 

Exemplo:

 

Levando em consideração que eu já peguei o valor de todos os campos, e joguei em varáveis dentro do PHP desta forma: $Nome = $_POST["Nome"];

 

queria criar um array mais ou menos assim:

 

$ArrayFuncoes = array('ValidarString', 'ValidarNumerico', ValidarCPF', ValidarEmail', 'ValidarData'); $ArrayCampos = array($Nome,$RG,$CPF,$Email,$Nascimento); $ArrayRespostas = array('Campo Nome Inválido','12345678','12345678910','10/31/2006');

porque se tiver como fazer isso, daí eu faria um for, ao invés de colocar vários "IF" encadeado. Imagina eu ter que acrescentar um campo a mais no formulário futuramente, teria que reestruturar todos os IF.

 

Continuando com o exemplo, a idéia seria essa:

 

$Erro = 0; for (i=1;i<count($ArrayCampos);i++) {	   IF ( ($ArrayFuncoes[i]($ArrayCampos[i])) == false ) {			 echo $ArrayRespostas[i];			   			 $Erro = 1;	   } } if ($Erro == 0) {	 Insere no banco; } Else {	 Não insere no banco porque deu erro; }

 

Então pessoal, essa é a minha dúvida, se tem como fazer o que eu tentei demonstrar aí em cima. Isso seria uma mão na roda para mim, pois não teria a necessidade de ficar "encadeando" IF... rs...

 

Fico no aguardo de uma resposta então.

 

Obrigado aí mesmo a todo mundo.

 

Abraços!

 

Júnior

 

 

Ops... rs... Só corrigindo aí:

 

Desconsiderem:

$ArrayRespostas = array('Campo Nome Inválido','12345678','12345678910','10/31/2006');

 

 

 

E considerem:

$ArrayRespostas = array('Campo Nome Inválido','O Campo do RG deve ser preenchido usando apenas numeros','Erro ao validar o CPF','Data de Nascimento informada Inválida.');

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu não sou muito fera em programação oop não, mas não seria o caso de se criar uma classe pra validar os dados contendo todas as funções acima?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso te ajuda:

function funcao(){ ...}$nomefuncao = 'funcao';$palavra = $nomefuncao();

Funções variáveis com o array q você criou deve resolver.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.