phmartins6 Postado Junho 3, 2010 Denunciar Share Postado Junho 3, 2010 Olá =]Prazer, sou novo por aqui, pra estrear gostaria de tirar uma dúvida a qual o Sr. Google não conseguiu me responder.Gostaria de saber se existe alguma forma de transformar uma string separada por vírgulas, em parâmetros, segue exemplo:--$string = 'um, dois, tres';funcao($string);funcao($parametro1,$parametro2,$parametro3) {...}--Grato. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rickayron Postado Junho 3, 2010 Denunciar Share Postado Junho 3, 2010 Olá =]Prazer, sou novo por aqui, pra estrear gostaria de tirar uma dúvida a qual o Sr. Google não conseguiu me responder.Gostaria de saber se existe alguma forma de transformar uma string separada por vírgulas, em parâmetros, segue exemplo:--$string = 'um, dois, tres';funcao($string);funcao($parametro1,$parametro2,$parametro3) {...}--Grato.Não entendir muito bem sua duvida.funcao($parametro1,$parametro2,$parametro3) cada parametro desse é uma variavel solicitada pela função, o que você pode fazer é separa-las pega uma string com virgula e dentro da função separá-la usando a função explode() que retorna um array exemplo$string = 'um, dois, tres';$n=explode("," , $string);$n[0]='um'$n[1]='dois'e assim por diante. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 phmartins6 Postado Junho 3, 2010 Autor Denunciar Share Postado Junho 3, 2010 O que é acontece é o seguinte, essa string irá agrupar uma quantidade indefinida de parâmetros separados por vírgulas, logo, a quantidade de parâmetros da função também é indefinido.Ou sejaSe eu der explode pra separar por vírgulas, terei que saber quantos parâmetros existem na string, e conseqüentemente usar um if, desta forma:if(count($string) == 3) { funcao($string[0], $string[1], $string[2])}elseif(count($string) == 4) { funcao($string[0], $string[1], $string[2], $string[3])}--Existe alguma dinâmica de fazer isto? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rickayron Postado Junho 3, 2010 Denunciar Share Postado Junho 3, 2010 O que é acontece é o seguinte, essa string irá agrupar uma quantidade indefinida de parâmetros separados por vírgulas, logo, a quantidade de parâmetros da função também é indefinido.Ou sejaSe eu der explode pra separar por vírgulas, terei que saber quantos parâmetros existem na string, e conseqüentemente usar um if, desta forma:if(count($string) == 3) { funcao($string[0], $string[1], $string[2])}elseif(count($string) == 4) { funcao($string[0], $string[1], $string[2], $string[3])}--Existe alguma dinâmica de fazer isto?para saber a quantidade basta usar o count() e para varrer os dados utilize um laço o do, while for, foreachexp$dados=explode(',', $string);$Numero=count($dados);for($i=0; $i<$Numero; $i++){ echo "Elemento $i".$dados[$i]; print "<Br>";}o codigo assima pega a string com quantos elementos existirem separados por virgula e transforma em array depois conta o numero de elementos existentes e laço vai acessalo até que chegue ao seu ultime elemento.até mais Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 phmartins6 Postado Junho 3, 2010 Autor Denunciar Share Postado Junho 3, 2010 Eu sei disso amigo, esta disposto nos exemplos que citei, a minha pergunta é a seguinte.$string = 'um, dois, tres';$parametros = explode(',',$string);no array $paramentros existem 3 elementos (pode existir N elementos), existe alguma forma DINÂMICA de eu chamar a função passando esses elementos? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 *FIT* Postado Junho 3, 2010 Denunciar Share Postado Junho 3, 2010 Para chamar a função podemos até encontrar uma maneira, mas como saber como montar a função? Quantos parâmetros ela irá receber? Qual o máximo de parâmetros que poderão ter? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rickayron Postado Junho 3, 2010 Denunciar Share Postado Junho 3, 2010 Eu sei disso amigo, esta disposto nos exemplos que citei, a minha pergunta é a seguinte.$string = 'um, dois, tres';$parametros = explode(',',$string);no array $paramentros existem 3 elementos (pode existir N elementos), existe alguma forma DINÂMICA de eu chamar a função passando esses elementos?se há variaz possibilidades utilize o switch para testar sei que isso é chato eu não conheço nenhuma forma de definir dados indefinidos.quando não sei a quantidade de elementos sempre uso arrayagora se para cada quantidade você tem um metodo ai vai ter de ser no switch por usar if vai ficar muito grande e diminuir a performance de seu codigo,. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Junho 3, 2010 Denunciar Share Postado Junho 3, 2010 Existe como criar função sem difinir o número de parâmetros, mas para o seu caso, porque você não passa um array com os parâmetros pra dentro da função e trata tudo lá? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JoW_Killer Postado Junho 3, 2010 Denunciar Share Postado Junho 3, 2010 você pode utilizar a função call_user_func_array!ela tem dois parametros o 1º é o nome da função o 2º um array de parametros! ai é só você usar a função explode pra transformar a string em array!Ex.:$stringParam = 'nome1, nome2, nome3';call_user_func_array( 'addNome' , explode( ',' , $stringParam) ); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 phmartins6 Postado Junho 15, 2010 Autor Denunciar Share Postado Junho 15, 2010 Perfeito @JoW_Killer !Muito obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ursolouco Postado Junho 15, 2010 Denunciar Share Postado Junho 15, 2010 Salve,Leia http://www.php.net/manual/pt_BR/functions....riable-arg-listAbraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
phmartins6
Olá =]
Prazer, sou novo por aqui, pra estrear gostaria de tirar uma dúvida a qual o Sr. Google não conseguiu me responder.
Gostaria de saber se existe alguma forma de transformar uma string separada por vírgulas, em parâmetros, segue exemplo:
--
$string = 'um, dois, tres';
funcao($string);
funcao($parametro1,$parametro2,$parametro3) {
...
}
--
Grato.
Link para o comentário
Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados
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.