Ir para conteúdo

POWERED BY:

Arquivado

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

visitante_php

funcoes e parametros variaveis

Recommended Posts

eu estou modificando um exemplo em ajax e keria usar varias funcoes, so q eu precisaria usar o switch, pra nao usar...eis as funcoes variaveis, so q, cada funcao tera um numero variavel de parametros, eis as func_num_args etc...

 

so q cada funcao tera um numero diferente de parametros, tipo

 

function um($id);

 

function dois($mel, $abelha);

 

ae a cada mudança d parametros eu teria q refazer a chamada da funcao com os parametros sendo chamado....

 

ha como resolver?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo kero usar funcao chamada pela url, beleza...so q pra usar no meio da pagina, eu precisaria do switch, so q nao kero usar switch, ae me indicaram usar as funcoes variaveis...

 

$_GET['funcao']();

 

so q cada funcao ira ter um determinado numero de funcoes... tipo

 

$_GET['funcao']($id,$numero);

 

e outras funcoes

 

 

$_GET['funcao']($id,$numero, $sql);

 

havera esta mudança, como eu resolveria isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria algo assim:

 

$funcao = $_GET['funcao'];

$funcao();

 

Dai declara as variaveis, dentro das funções, como globais e chama todas sem argumentos.

 

function um() {

global $id;

}

function dois() {

global $mel, $abelha;

}

 

Não sei!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

você chegou perto, nao eh as variveis q kero pegar, e sim os parametros.... eu posso usar akelas funcoes acimas citadas d func_args_num etc... mas os parametros...na chamada

 

eu posso chamar uma funcao assim:

 

$_GET['funcao']();

 

e posso assim

 

$_GET['funcao']($id);

 

nessa mudança de nmumeros de parametros pode dar erro... pq uma funcao vai ter mais do q outros...

 

nao eh na construcao, eh na chamada...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe, mais ainda não consegui entender direito o que você quer fazer.

 

Por que, não pode, então chamar assim:

$_GET['funcao']() ou $_GET['funcao']($p1) ou $_GET['funcao']($p1, $p2) ou $_GET['funcao']($p1, $p2, $p3) ...

 

e depois não declara menhum parametro na definição da func e usa func_args_num etc...

 

para ver e se virar com o que foi parar lá na função.

 

Tipo:

 

function qualquernparametro() {

 

$nparametrospassados = func_args_num();

 

$arrparametrospassados = func_get_args();

 

... e vai ...

 

}

 

??

Compartilhar este post


Link para o post
Compartilhar em outros sites

function qualquernparametro() {

 

$nparametrospassados = func_args_num();

 

$arrparametrospassados = func_get_args();

 

... e vai ...

 

}

 

assim eu posso declarar e poide pra chamar?

 

$_GET['funcao']() ou $_GET['funcao']($p1) ou $_GET['funcao']($p1, $p2) ou $_GET['funcao']($p1, $p2, $p3)

 

teria q ser assim ou um ou outro ou o outro....eu keria uma forma unica...

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que está parecendo é que você qeur fazer algo que nao faz sentido

 

basta criar um função única

 

 

function recebe(){ // <--- aqui nao precisa especificar os parâmetros

 

// restage os parametros aqui dentro automaticamente com essas funçoes

//func_args_num();

//func_get_args();

 

}

 

 

quando chamar a função

 

 

recebe( $parametro1 )

 

recebe( $parametro1, $parametro2 )

 

recebe( $parametro1, $parametro2, $parametro3 )

 

tanto faz a quantidade de parametros ..

 

 

mas pelo que entendi, você quer gerar o nome da função dinamicamente

 

 

algo assim:

$nomeDaFuncao = $_GET['recebe'];

 

$nomeDaFuncao = function(){

 

}

 

mas aí eu pergunto..

 

o script que a função executará, nao será sempre o mesmo ?

se for sempre o mesmo, nao fazz sentido ficar gerando nomes diferentes.

 

 

ou será que você está falando disso?

 

http://jp.php.net/manual/pt_BR/functions.v...e-functions.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao o que você precisa fazer é usar função variável

 

está no link, nesse ultimo post antes do seu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu sei,ja penso em usar elas,mas assim...

 

e quando eu kiser incluiros parametros, se for chamad uma funcao q necessita de 3 parametros e no script que chamar a funcao chamar uma funcao q so tem 2?

 

$_GET['funcao']($id, $nome);

 

 

$_GET['funcao']($id, $nome, $casa);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendo por que você não pode usar a sugestão que dei mais acima e o hinom ainda explicou melhor.

 

Declara a função sem menhum argumento e depois usa

 

func_args_num();

func_get_args() e cia

 

Explica melhor porque não da para usar essa ideia.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu posso chamar uma funcao assim:

 

$_GET['funcao']();

 

e posso assim

 

$_GET['funcao']($id);

 

nessa mudança de nmumeros de parametros pode dar erro... pq uma funcao vai ter mais do q outros...

serao funcoes diferentes...cada um com um numero diferente de parametros

Compartilhar este post


Link para o post
Compartilhar em outros sites

e quando eu kiser incluiros parametros, se for chamad uma funcao q necessita de 3 parametros e no script que chamar a funcao chamar uma funcao q so tem 2?

Não entendo esse nivel de php, mas nesse caso, não é mais fácil você fazer um tratamento para a tua função aceitar o teu máximo de parâmetros(se você precisar de no máximo 15 parâmetros, ponha 15!), depois conseguir rodar ela se não houverem todos?

 

Algumas funções php são assim.. ou seja, nem todos os parâmetros são obrigatórios.

Sei lá, só uma idéia... não sei como seria.. nem como fazer :wacko:

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.