Sintaxe para passar array como parâmetro de uma funcao PHP

3,493 views
Skip to first unread message

Diego SPFC

unread,
Aug 14, 2008, 1:45:08 PM8/14/08
to list...@googlegroups.com
Boa tarde galera, gostaria de saber qual a sintaxe para passar um array como parâmetro de uma função em PHP.
 
Procurei no google mas não consegui encontrar.
 
function ($array[], $p1, $p2) {}
 
assim dá um erro: Parse error: syntax error, unexpected '[', expecting ')' ...
 
Quero que o primeiro parâmetro seja uma lista de String!
 
Valeu

--
Diego

Tiago Gigli

unread,
Aug 14, 2008, 1:47:06 PM8/14/08
to list...@googlegroups.com
vc tah falando da declaracao da funcion

function teste($arr1, $arr2 = array(), $p1 = 0){}

$a = array(1, 2, 3, 4)
$x = teste($a);
--
Tiago Gigli
MyGSM: +55 (15) 8116-5168
Eml/MSN/GTalk: ti...@gigli.com.br
--------------------------------------------
http://perolasdocar.blogspot.com/
http://tiago.gigli.com.br

Debora M Donato

unread,
Aug 14, 2008, 1:49:20 PM8/14/08
to list...@googlegroups.com
Oi Diego,

Basta retirar os "[]",
function ($array, $p1, $p2) {}


> Boa tarde galera, gostaria de saber qual a sintaxe para passar um
> array como parâmetro de uma função em PHP.
>
> Procurei no google mas não consegui encontrar.
>
> function ($array[], $p1, $p2) {}
>
> assim dá um erro: *Parse error*: syntax error, unexpected '[',

Beatriz KMS

unread,
Aug 14, 2008, 1:50:22 PM8/14/08
to list...@googlegroups.com
Ué...?! Passa como qualquer outra variavel....

On Thu, Aug 14, 2008 at 2:45 PM, Diego SPFC <dieg...@gmail.com> wrote:

Diego SPFC

unread,
Aug 14, 2008, 1:53:55 PM8/14/08
to list...@googlegroups.com
Era isso Tiago, valeu cara!

2008/8/14 Beatriz KMS <beatr...@gmail.com>

Diego SPFC

unread,
Aug 14, 2008, 2:00:52 PM8/14/08
to list...@googlegroups.com
Hum, não sabia que era tão simples :/

2008/8/14 Debora M Donato <debora...@gmail.com>

Daniel Bastos

unread,
Aug 14, 2008, 6:16:52 PM8/14/08
to list...@googlegroups.com
Com PHP vc pode passar qualquer tipo de varíavel, sendo ela um tipo simples, um array ou até mesmo um objeto, sem diferenças na declaração da função.

2008/8/14 Diego SPFC <dieg...@gmail.com>



--
Abs
Daniel A. Bastos

Diego SPFC

unread,
Aug 15, 2008, 6:48:37 AM8/15/08
to list...@googlegroups.com
Daniel, fiz da mesma forma que o Lucas falou na primeira resposta, mas vale a informação, muito obrigado!

2008/8/14 Daniel Bastos <danb...@gmail.com>




--
Diego

Beatriz KMS

unread,
Aug 15, 2008, 8:32:16 AM8/15/08
to list...@googlegroups.com
Diego....
function teste($arr1, $arr2 = array(), $p1 = 0){}
Isso nao garante que o parametro $arr2 será array...
Se vc chamar a função assim: teste("teste","teste"); o parametro sera
uma string.
Aquilo ali serve somente pra se vc NAO passar o parametro, daí $arr2
dentro da sua função será um array vazio. É somente um valor padrao
para o parametro se ele nao for passado.

2008/8/15 Diego SPFC <dieg...@gmail.com>:

Pedro

unread,
Aug 15, 2008, 12:25:25 PM8/15/08
to LISTA PHP
É sempre bom lembrar que assinatura de funções no PHP não funcionam
como em outras linguagens.

Tipagem, overload etc acontecem dentro do bloco de código; se você
quer checar se está recebendo um array de strings, de uma olhada nas
funções is_* no php.net

On 15 ago, 09:32, "Beatriz KMS" <beatriz...@gmail.com> wrote:
> Diego....
> function teste($arr1, $arr2 = array(), $p1 = 0){}
> Isso nao garante que o parametro $arr2 será array...
> Se vc chamar a função assim: teste("teste","teste"); o parametro sera
> uma string.
> Aquilo ali serve somente pra se vc NAO passar o parametro, daí $arr2
> dentro da sua função será um array vazio. É somente um valor padrao
> para o parametro se ele nao for passado.
>
> 2008/8/15 Diego SPFC <diegos...@gmail.com>:
>
> > Daniel, fiz da mesma forma que o Lucas falou na primeira resposta, mas vale
> > a informação, muito obrigado!
>
> > 2008/8/14 Daniel Bastos <danbas...@gmail.com>
>
> >> Com PHP vc pode passar qualquer tipo de varíavel, sendo ela um tipo
> >> simples, um array ou até mesmo um objeto, sem diferenças na declaração da
> >> função.
>
> >> 2008/8/14 Diego SPFC <diegos...@gmail.com>
>
> >>> Hum, não sabia que era tão simples :/
>
> >>> 2008/8/14 Debora M Donato <deboradon...@gmail.com>

Gihovani Demétrio

unread,
Aug 15, 2008, 12:37:28 PM8/15/08
to list...@googlegroups.com
Não sei se ja resolveu mais eu passo array por parametros desse jeito.
 
 
Exemplo teste.php
<?
if(empty($_GET["parametros"])) {
 $legal[1] = "Teste 01";
 $legal[2] = "Teste 02";
 $legal[3] = "Teste 03";
 $legal[4] = "Teste 04";

 header("Location: teste.php?parametros=".urlencode(serialize($legal)));
} else {
 $parametros = unserialize(urldecode($_GET["parametros"]));
 
 var_dump($parametros);
}
?>

2008/8/15 Pedro <fial...@gmail.com>

Marco Aurélio

unread,
Aug 15, 2008, 12:44:47 PM8/15/08
to list...@googlegroups.com
Postaram certa vez aqui no grupo a sitaxe function funcao(array $var){}
Pra forçar que a variavel viria como array, isso só funciona com arrays e objetos.

Acho que foi isso que passaram naquela vez não foi?

2008/8/15 Gihovani Demétrio <giho...@gmail.com>



--
Marco Aurélio Lima Fernandes

E-mail: mal...@gmail.com
MSN: mal...@msn.com
Blog: http://averdadeficaradefora.com

"Quando alguém diz 'teoricamente', ele quer dizer 'na verdade, não'."

Beatriz KMS

unread,
Aug 15, 2008, 1:11:05 PM8/15/08
to list...@googlegroups.com
Estamos falando de parametro de função, nao de url....

2008/8/15 Gihovani Demétrio <giho...@gmail.com>:

Gihovani Demétrio

unread,
Aug 15, 2008, 1:13:04 PM8/15/08
to list...@googlegroups.com
ok
:S

2008/8/15 Beatriz KMS <beatr...@gmail.com>

Beatriz KMS

unread,
Aug 15, 2008, 1:13:08 PM8/15/08
to list...@googlegroups.com
É verdade.... se vc passar algo diferente de array pra essa função,
vai dar erro. Eu nunca uso isso, nem me lembrava.

2008/8/15 Marco Aurélio <mal...@gmail.com>:

Diego SPFC

unread,
Aug 15, 2008, 3:34:51 PM8/15/08
to list...@googlegroups.com
Bom, eu resolvi com a sintaxe informada pelo Lucas na primeira resposta. Só não sei se é a mais segura que existe!

2008/8/15 Beatriz KMS <beatr...@gmail.com>
Reply all
Reply to author
Forward
0 new messages