Sobre variáveis globais, locais e estáticas em PHP
Dica publicada em Linux / Introdução
Sobre variáveis globais, locais e estáticas em PHP
O escopo de uma variável definida dentro de uma função, por padrão, é local. Utilizando a declaração "global" você pode informar ao PHP que deseja que um nome de variável signifique a mesma coisa também no contexto externo da função.
Sintaxe: global $var1,$var2,...;
A utilização de variáveis globais pode ser bem útil, especialmente porque o PHP fornece algumas vinculações de variável a todas as páginas mesmo antes da execução de qualquer código. Pode ser útil fornecer um meio para que as funções enxerguem essas variáveis sem o incômodo de enviá-las como argumento em cada chamada.
Por padrão funções não tem nenhuma memória na execução e em cada função de chamada as variáveis locais atuam como se fossem recém-criadas. A declaração "static" anula esse comportamento para variáveis particulares, fazendo com que retenham os valores entre chamadas para a mesma função.
Sintaxe: static $var1,$var2,...;
A palavra-chave "static" permite uma atribuição inicial, que tem efeito somente se a função não tiver sido chamada anteriormente. Na primeira vez que a função é executada, a versão local da variável é configurada. Na segunda vez que a função é chamada, a variável tem o valor que tinha no fim da última execução.
Sintaxe: global $var1,$var2,...;
A utilização de variáveis globais pode ser bem útil, especialmente porque o PHP fornece algumas vinculações de variável a todas as páginas mesmo antes da execução de qualquer código. Pode ser útil fornecer um meio para que as funções enxerguem essas variáveis sem o incômodo de enviá-las como argumento em cada chamada.
Por padrão funções não tem nenhuma memória na execução e em cada função de chamada as variáveis locais atuam como se fossem recém-criadas. A declaração "static" anula esse comportamento para variáveis particulares, fazendo com que retenham os valores entre chamadas para a mesma função.
Sintaxe: static $var1,$var2,...;
A palavra-chave "static" permite uma atribuição inicial, que tem efeito somente se a função não tiver sido chamada anteriormente. Na primeira vez que a função é executada, a versão local da variável é configurada. Na segunda vez que a função é chamada, a variável tem o valor que tinha no fim da última execução.