Âmbito variável global e função em PHP Compreender Âmbito variável em PHP - Parte 1 Introdução Esta é uma parte da minha série, Compreender Escopo de variável em PHP. Nesta parte da série, nós olhamos global e funcionar escopo de variáveis em PHP. Tudo nesta série diz respeito PHP 5. Nota: Se você não pode ver o código ou se você acha que alguma coisa está faltando (link quebrado, imagem ausente), apenas contacte-me em [email protected]. Ou seja, contacte-me para o menor problema que você tem sobre o que você está lendo.
Você precisa de conhecimentos básicos em PHP, a fim de compreender esta série. Se você não tem esse conhecimento pré-requisito, em seguida, ler a série que eu escrevi neste blog cuja primeira parte é intitulada, Introdução ao PHP. Para chegar à série, basta digitar o título e meu nome Chrys na caixa de pesquisa da página e clique em Pesquisar. O que é um escopo de variável A especificação PHP, afirma o seguinte: ". O escopo de uma variável é o contexto no qual ela está definida" Você pode não entender o que isso significa se você é novo para a computação. Então eu vou fazer alguma ilustração.
Considere o seguinte programa: função fn () {$ b = 2; echo $ b; } Fn (); ?> A variável, $ b é declarado e utilizado apenas no bloco de função. Esta variável não pode ser visto fora da função (bloco). Esta variável é dito ter escopo local da função, ou simplesmente, Âmbito Local. Considere agora o seguinte programa: $ b = 2; função fn () {//algumas declarações. . . } Echo $ b; ?> A variável, $ b é declarado e utilizado fora da função. Esta variável não pode ser visto dentro da função. Diz-se de ter escopo global.
Vendo variável global no âmbito local Normalmente, você não pode ver uma variável global em âmbito local e você também não pode ver uma variável local em âmbito global. No entanto, é possível fazer aparecer uma variável global no âmbito local e não vice-versa. Há duas maneiras de fazer uma variável global aparecem no escopo local da função da seguinte forma: O uso da palavra-chave global Suponha que uma variável global foi declarada fora da função. Para que essa variável global a ser visto dentro da função, você tem que re declarar-lo dentro da função precedida pela palavra-chave, global.
O programa a seguir ilustra isso: $ b = 2; função fn () {$ b globais; echo $ b; } Fn (); ?> Com a variável global re-declarada dentro da função precedida pela palavra, global, a variável global pode ser visto dentro da função. A utilização do pré-definida matriz $ GLOBALS Há uma disposição predefinida chamada $ GLOBALS. Esta é uma matriz associativa com pares de chave /valor. Todas as variáveis globais e seus valores em seu programa são armazenados nesta matriz como pares de chave /valor.
Para cada variável global, o nome da variável de forma a chave e o valor das formas variáveis do valor da matriz correspondente. O segredo é que essa matriz pode ser visto dentro de uma função, bem como no exterior. Então se você quer uma variável global dentro de uma função, basta acessar o elemento correspondente para a variável global na matriz. O programa a seguir ilustra isso: $ b = 2; função fn () {echo $ GLOBALS ['b']; } Fn (); ?> Note que como chave para a variável global na matriz, você não tem o sinal $, precedendo o nome da variável.
O nome da variável é entre aspas como chave entre colchetes, como com 'b' acima. Passando uma variável global para uma função Considere o seguinte código que funciona: $ c = 2; função fn ($ x) {echo $ x; } Fn ($ C); ?> No código acima, $ c é uma variável global e não pode ser visto dentro da função. A função tem o parâmetro, $ x. Na chamada de função, a variável global é passado como argumento. A função funciona. Isso não significa que a variável global foi visto pela função. A variável global não foi visto pela função, pois a palavra-chave, global ou a matriz $ GLOBALS não tem sido utilizado.
Aqui está a explicação do que aconteceu: Depois que a função apenas tem sido chamado, imediatamente a execução da função começa, o valor do parâmetro, $ x torna-se o valor da variável global, $ c. O bloco de definição de função usa $ x e não US $ c. Portanto, o valor da variável global foi passado para a função sem a função de ver a variável global (nome). É o valor da variável global que é enviado como argumento e não a variável (nome). Superglobais em PHP Há algumas matrizes pré-definidos que podem ser vistos em ambos os âmbitos globais e função.
Para utilizar qualquer uma dessas matrizes em uma função, você não precisará precedê-lo com a palavra-chave, global. Você só ir em frente e usá-lo digitando seu nome, incluindo uma chave para obter um valor. Um exemplo de tal um array $ GLOBALS é que acabamos de ver. Essas matrizes são chamados Superglobais. Em PHP, superglobais são: $ GLOBALS $ _SERVER $ _GET $ _POST $ _FILES $ _COOKIE $ _SESSION $ _REQUEST $ _ENV Acabo de falar cerca de US $ GLOBAL, que é o primeiro na lista. Para saber sobre os outros, você deve consultar alguns outros documentos.
Blocos não a função Existem blocos condicionais, como o bloco se como escopos locais? Não, não há. Escopo local é normalmente preocupados com funções. Considere o seguinte código: $ c = 2; if ($ c == 2) {$ c = 3; echo $ c; }?>