array dentro de uma função, escopo

7 views
Skip to first unread message

Edson Alexandre

unread,
Jul 13, 2015, 2:27:14 PM7/13/15
to lista...@googlegroups.com
Aí pessoal, preciso de uma ajudinha básica aqui, estou tendo problemas em ler foro do escopo de uma função uma array que populada dentro dela, se dou um print_r dentro do escopo ela funciona beleza, mas quando tento ler ela fora do escopo da função, ela não retorna nada. Alguém pode me dar uma mão.
 
Edson

Luís Henrique Faria

unread,
Jul 13, 2015, 9:21:23 PM7/13/15
to lista...@googlegroups.com
código?


Atenciosamente,

Em 13 de julho de 2015 15:27, Edson Alexandre <e...@eastec.com.br> escreveu:
Aí pessoal, preciso de uma ajudinha básica aqui, estou tendo problemas em ler foro do escopo de uma função uma array que populada dentro dela, se dou um print_r dentro do escopo ela funciona beleza, mas quando tento ler ela fora do escopo da função, ela não retorna nada. Alguém pode me dar uma mão.
 
Edson

--
--
---
Você recebeu esta mensagem por estar inscrito no grupo "PHP BR"
 
*** NÃO ESQUEÇA: As regras do grupo estão disponíveis em nossa Wiki:
http://wiki.phpbr.com.br/index.php/Regras_de_Utiliza%C3%A7%C3%A3o_da_Lista
 
Para enviar mensagens para o grupo, envie e-mails para lista...@googlegroups.com
Para cancelar sua inscrição neste grupo, envie e-mail para lista-phpbr...@googlegroups.com
Para mais opções visite este grupo em: http://groups.google.com/group/lista-phpbr
---
Você recebeu essa mensagem porque está inscrito no grupo "PHPBR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para lista-phpbr...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Marcos Barbosa

unread,
Jul 13, 2015, 11:13:35 PM7/13/15
to lista...@googlegroups.com
Você consegue pegar o valor desse array de 2 formas. Usando a declaração global na função ou retornando o array ao chamar a função.

Segue os 2 exemplos:

<?php


function escopo() {

    global $lista;

    $lista = array('Item 1', 'Item 2');

}


escopo();

var_dump($lista);//Resultado: array(2) { [0]=> string(6) "Item 1" [1]=> string(6) "Item 2" }



function escopo2() {


    $lista = array('Item 2', 'Item 3');

    return $lista;

}


$l = escopo2();

echo "<br>";

var_dump($l);//Resultado: array(2) { [0]=> string(6) "Item 2" [1]=> string(6) "Item 3" }






?>
--
Marcos Barbosa
(31) 8279-8118
barbo...@gmail.com

Edson Alexandre

unread,
Jul 14, 2015, 6:36:28 AM7/14/15
to lista...@googlegroups.com
Valeu Marcos, grato pela ajuda.
 
Edson

Ismael Volkmann

unread,
Jul 14, 2015, 11:22:19 AM7/14/15
to lista...@googlegroups.com
Eu faria a função retornar o array, ou então modificaria o array utilizando o ponteiro para a variavel &$aMeuArray.
O uso de globais é desaconselhado.
Assim:

<?php

#inicializando a variavel com um array vazio
$aMeuArray = [];

function bla(&$aMeuArray)
{
    $aMeuArray = ['a', 's', 'd', 'f', 'g'];
}

# aqui o array ainda esta vazio
echo '<pre>';
var_dump($aMeuArray);
echo '</pre>';

# chamada da funcao que popula o array
bla($aMeuArray);

# aqui o array já esta populado
echo '<pre>';
var_dump($aMeuArray);
echo '</pre>';


exit();


Ismael
Reply all
Reply to author
Forward
0 new messages