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

Transformar string em parâmetros


phmartins6

Pergunta

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

  • 0
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.

Link para o comentário
Compartilhar em outros sites

  • 0

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 seja

Se 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?

Link para o comentário
Compartilhar em outros sites

  • 0
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 seja

Se 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, foreach

exp

$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

Link para o comentário
Compartilhar em outros sites

  • 0

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?

Link para o comentário
Compartilhar em outros sites

  • 0
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 array

agora 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,.

Link para o comentário
Compartilhar em outros sites

  • 0

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) );

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...