Diário Code - Uma xícara de café e um bule em cima de uma mesa.

Diário Code

Aprenda JavaScript e PHP

Como utilizar variáveis que estão fora do escopo de uma função?

Uma mulher de cabelo preso, fone de ouvido amarelo e blusa amarela sentada numa cadeira vermelha programando numa mesa branca com computador branco e teclado preto

O que mais se precisa fazer na programação é chamar variáveis. Você já deve saber que todas as variáveis em PHP são identificadas pelo sinal de $ (cifrão). Portanto, para invocá-las, basta usar $nome_da_variavel.

Mas, e se a variável desejada estiver fora do escopo? Como fazer para usá-la? Isso pode ser um problema especialmente quando a estrutura do nosso código ainda não está totalmente construída. Veja só como resolver essa situação.

Observe o código abaixo:

$nota_aprovado = 75 ; // fora de escopo

  function esta_aprovado ( $bim_1 , $bim_2 , $bim_3 , $bim_4 ) {

   $nota_total = $bim_1 + $bim_2 + $bim_3 + $bim_4 ;

   if ( $nota_total >= $nota_aprovado ) { // dentro de escopo
    return true ;
   } else {
    return false ;
   }

  }

Diferente do que acontece em outras linguagens, no PHP as variáveis declaradas fora de um escopo não podem ser usadas dentro de outro. Isso significa que as variáveis em PHP têm apenas um escopo local. Portanto, o código acima irá gerar um erro dizendo que a variável $nota_aprovado não foi declarada.

Isso significa que a variável $nota_aprovado está fora do escopo da função esta_aprovado( ) e, portanto, não pode ser usada dentro da função.

O que se deve fazer então para conseguir acessar $nota_aprovado dentro da função esta_aprovado( )? Basta usar a palavra-chave global.

A palavra-chave global define quais variáveis podem ser usadas dentro de um determinado escopo. Essa palavra-chave estende o escopo de variáveis locais declaradas anteriormente. Mas isso funciona para variáveis que não estejam em nenhum outro escopo, como é o caso da variável $nota_aprovado.

Sendo assim, para acessar essa variável dentro da função, deve-se fazer assim:

$nota_aprovado = 75 ; // fora de escopo

  function esta_aprovado ( $bim_1 , $bim_2 , $bim_3 , $bim_4 ) {
   global $nota_aprovado ; // incluir no escopo com o mesmo valor

   $nota_total = $bim_1 + $bim_2 + $bim_3 + $bim_4 ;

   if ( $nota_total >= $nota_aprovado ) {
    return true ;
   } else {
    return false ;
   }

  }

Desta forma, o código não retornará erros, porque agora foi indicado que se pode usar a variável $nota_aprovado dentro do escopo da função.

Entender isso é essencial para qualquer projeto, seja ele pequeno ou grande. Também requer muita organização para que a quantidade de variáveis globais seja reduzida e facilmente compreendida.

Estou confiante de que essa informação vai ajudar você a programar melhor em PHP.

Aprenda mais com outros artigos relacionados