<?php
$a = "Olá Mundo!";
echo "Mensagem principal: $a<br>\n";
display_data();
function display_data(){
echo "dados: $a<br>\n";
}
?>
Em primeiro lugar, $a é inicializada e exibida na tela. Então a função display_data é chamada, e tenta exibir $a novamente e o que temos é o resultamos a seguir:
Mensagem principal: Olá Mundo!
dados:
Como podemos observar display_data não consegue exibir nada, pois $a não está visível para ela. A variável $a foi inicializada no script principal e, portanto, não é visível para funções chamadas ele. Por este motivo, se desejarmos acessar $a em display_data, devemos então, declará-la como global assim como podemos ver na Listagem 2.
Listagem 2. Declaração de variável global
<?php
$a = "Olá Mundo!";
echo "Mensagem principal: $a<br>\n";
display_data();
echo "Mensagem principal: $a<br>\n";
function display_data(){
global $a;
echo "dados: $a<br>\n";
$a = "Olá Adriano";
}
?>
Com a ajuda da palavra-chave global, é possível ler e modificar qualquer variável global:
Mensagem principal: Olá Mundo!
dados: Olá Mundo!
Mensagem principal: Olá Adriano
Como podemos ver o conteúdo de $a pode ser modificado por display_data. Outro modo de acessar a variável seria utilizar um array chamado $GLOBALS como podemos ver na Listagem 3.
Listagem 3. Usando o array $GLOBALS
<?php
include("inc/vars.php");
echo "Mensagem Principal: $a<br>\n";
display_data();
function display_data(){
echo "dados:".$GLOBALS["a"];
}
?>
...