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

Global, Huh?


Thy

Pergunta

8 respostass a esta questão

Posts Recomendados

  • 0

Lá vai!

Escopo de variáveis

O escopo de uma variável é o contexto onde ela foi definida. A maior parte das variáveis do PHP tem somente escopo local. Este escopo local inclui os arquivos incluídos. Por exemplo:

<?php

$a = 1;

include "b.inc";

?>

Aqui a variável $a estará disponível no script incluído b.inc. Entretanto, com as funções definidas pelo usuário, um escopo local é introduzido. Quaisquer variáveis utilizadas dento da função é por default limitada dentro do escopo local da função. Por exemplo:

<?php

$a = 1; /* escopo global */

function Teste()

{

echo $a; /* referencia uma variável do escopo local (não definida) */

}

Teste();

?>

Este script não produz nenhuma saída porque a instrução echo() refere-se a uma versão local da variável $a, e ela não tem nenhum valor assimilado nesse escopo. Essa é uma pequena diferença da linguagem C quando variáveis globais são automaticamente disponíveis para funções sem sobreescrever uma eventual definição local. Isto causa problemas quando as pessoas mudam inadivertidamente uma variável global. No PHP, as variáveis globais precisam ser declaradas globais dentro de uma função se ela vai ser utilizada naquela função.

A palavra chave global

Primeiro, um exemplo de global:

Exemplo 12-1. Usando global

<?php

$a = 1;

$b = 2;

function Soma()

{

global $a, $b;

$b = $a + $b;

}

Soma();

echo $b;

?>

O script acima imprimirá "3". Declarando $a e $b globais na função, todas as referências a essas variáveis referem-se a versão global. Não há um limite para o número de variáveis globais que podem ser manipuladas por uma função.

Uma segunda maneira de acessar variáveis do escopo global é utilizando o array especial $GLOBALS definido pelo PHP. O exemplo anterior poderia ser rescrito como:

Exemplo 12-2. Usando $GLOBALS no lugar de global

<?php

$a = 1;

$b = 2;

function Soma()

{

$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];

}

Soma();

echo $b;

?>

O array $GLOBALS é um array associativo onde o nome da variável global é a chave do array e o seu conteúdo da variável como o valor do elemento do array. Veja que $GLOBALS existe em qualquer escopo, isto porque $GLOBALS é uma superglobal. Segue um exemplo demonstrando o poder das superglobais:

Exemplo 12-3. Exemplo demonstrando superglobals e escopos

<?php

function test_global()

{

// A maioria das variaveis predefinidas não são 'super' e requerem

// 'global' para serem disponiveis para funcoes em qualquer escopo.

global $HTTP_POST_VARS;

echo $HTTP_POST_VARS['name'];

// Superglobais são disponiveis em qualquer escopo e

// não precisam de 'global'. Superglobais existem

// desde o PHP 4.1.0

echo $_POST['name'];

}

?>

Espero ter esclarecido suas dúvidas! wink.gif

Link para o comentário
Compartilhar em outros sites

  • 0

outra duvida tongue.gif

o que acontece com as variaveis que estava em outra pagina requizitada?

por exemplo eu entro em http:/host.dns/index.php

e nessa pagina tem um link para http:/host.dns/pagina2.php

ao clicar abrir esse link, oque acontece com as variaveis q estava em http:/host.dns/index.php ?

se eu defenir eles globais eles continuam em pagina2.php ?

Ps.: desculpa a pressa da duvida rolleyes.gif

de qualquer fomra atarde, quando chega eu testo.

bye bye tongue.gif

Link para o comentário
Compartilhar em outros sites

  • 0

smile.gif Colega, lá vai!

As formas que conheço para transportar variáveis e seus valores para outas páginas são:

Metodo GET:

Ao criar um link você determina no próprio as variáveis e seus valores que você deseja enviar para a pagina requisitada.

Exemplo:

http:/pagina2.php?var1=valor1&var2=valor2

Seguinifica que estou enviando para a pagina (pagina2.php) as variaveis var1 e var2 com seus respectivos valores.

Poderiamos dizer que isto é um link dinâmico.

----------------------------------------------------------------------------------------------

Método POST

É somente utilizado com formularios, onde o nome dos campos do formulários podem se transformar em nomes de variáveis quando submetidos para uma pagina PHP.

----------------------------------------------------------------------------------------------

Usando Include:

Ou em último caso, criar uma página PHP com todas as váriaveis que serão usadas em suas páginas, ou com as que serão usadas por todas as páginas ou pela maioria em comum.

Assim quando você nessecitar de alguma destas varíaveis basta você fazer um include da mesma na página desejada.

----------------------------------------------------------------------------------------------

wink.gif Dica: No seu caso parece que você gostaria que as variáveis presentes na página1.php fossem também encontradas na pagina2.php, se tambem for o caso de elas manterem o mesmo valor eu acho melho você usar um include. Mas esta é minha opnião.

biggrin.gif Espero ter contribuido!

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...