Escopo de variáveis ​​em PHP

Nosso objetivo neste artigo é explicar como o escopo das variáveis ​​do PHP afeta a acessibilidade e o tempo de vida das variáveis.

Não importa em que nível de desenvolvedor PHP você esteja, entender o escopo das variáveis ​​PHP é um aspecto crucial para escrever um script eficiente e eficaz.

Vamos explorar o escopo da variável PHP .

Escopo das Variáveis ​​do PHP

Quando se trata de escopo de variáveis ​​do PHP , as variáveis ​​podem ser declaradas em qualquer lugar do script.

O escopo de uma variável é onde ela pode ser usada ou referenciada no script.

Existem três tipos diferentes de escopo de variável em PHP:

  1. local
  2. global
  3. estático


Escopo de variável local e global

Variáveis ​​locais em PHP são variáveis ​​que são declaradas dentro de uma função e só são acessíveis dentro dessa função. Consequentemente, a variável só pode ser usada e modificada dentro da função e não pode ser acessada fora dela.

Sempre que uma variável com escopo local sai do escopo, o que ocorre quando uma função termina, ela é destruída e seu valor é perdido.

Usando o símbolo $ seguido do nome da variável, você pode declarar uma variável local em PHP.

Local Scope variable Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
function localVariable() {
$a = 9; // local scope variable
echo "<p>Variable a from inside the function is: $a</p>";
}
localVariable();
// a outside the function will generate an error
echo "<p>Variable a from outside the function is: $a</p>";
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Variáveis ​​globais são variáveis ​​declaradas fora de qualquer função e acessíveis de qualquer lugar no script. Qualquer função pode acessar, usar e modificar uma variável global sem precisar declará-la novamente.

Você pode usar variáveis ​​globais para armazenar informações usadas por várias funções ou em todo o seu script.

Global Scope Variable Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$a = 9; // global scope variable
function globalVariable() {
// a inside the function will generate an error
echo "<p>Variable a from inside the function is: $a</p>";
}
globalVariable() ;
echo "<p>Variable a from outside the function is: $a</p>";
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplo usando escopo de variável global e local:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$a = 9; // global scope variable
function globalLocal() {
$a = 11 // local scope variable
echo "<p>Variable a from inside the function is: $a</p>";
}
echo globalLocal() ; //This prints the local variable
echo "<p>Variable a from outside the function is: $a</p>"; //This prints the global variable
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplo de Explicação:

No código acima, uma variável de escopo global chamada $a é declarada com um valor de 9 . Em seguida, é declarada uma função chamada globalLocal , que declara sua própria variável de escopo local chamada $a com valor 11 .

Quando a função é chamada, ela imprime o valor de sua variável de escopo local $a , que é 11. Isso é feito concatenando a string “Variável a de dentro da função” com o valor de $a usando o método . operador e imprimindo o resultado usando echo .

Depois que a função é chamada, o valor da variável de escopo global $a é impresso, que é 9. Isso é feito concatenando a string “Variável a de fora da função” com o valor de $a usando o . operador e imprimindo o resultado usando echo .

A saída final do código será dois parágrafos, cada um contendo o valor de uma variável $a diferente .


Palavra-chave global em PHP

Usar a palavra-chave global permite acessar uma variável global dentro de uma função.

Você pode conseguir isso usando a palavra-chave global antes da variável (dentro da função):

PHP Global Keyword Example: 1 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$a = 45;
$b = 20;
function globalKeyword()
{
global $a, $b;
$b = $a + $b;
}
globalKeyword();
echo $b; // outputs 65
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

PHP Global Keyword Example: 2 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$a = "AliExpress is one of the ";
function globalKeyword()
{
global $a;
$b = "biggest online store";
$a = $a . $b;
}
globalKeyword();
echo $a; // AliExpress is one of the biggest online store
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Da mesma forma, o PHP armazena todas as variáveis ​​globais em um array chamado $GLOBALS[index].

Os nomes das variáveis ​​são armazenados no índice. Uma variável global pode ser atualizada diretamente de funções usando esta matriz.

Reescrevendo o exemplo acima ficaria assim:

PHP Global Keyword Example: 3 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$a = 45;
$b = 20;
function globalKeyword()
{
$GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}
globalKeyword();
echo $b; // outputs 65
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

PHP Global Keyword Example: 4 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$a = "AliExpress is one of the ";
function globalKeyword()
{
$b = "biggest online store";
$GLOBALS['a'] = $GLOBALS['a'] . $b;
}
globalKeyword();
echo $a; // AliExpress is one of the biggest online store
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Palavra-chave estática em PHP

Assim que uma função for concluída/executada, todas as suas variáveis ​​serão excluídas.

Em alguns casos, não queremos que uma variável local seja excluída.

Precisamos disso mais tarde. Para realizar mais alguns trabalhos.

Para fazer isso, declare a variável com a palavra-chave static :

PHP Static Keyword Example: 1 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
function staticKeyword()
{
static $a = 0;
echo $a;
$a++;
}
staticKeyword();
staticKeyword();
staticKeyword();
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

PHP Static Keyword Example: 2 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
function staticKeyword()
{
static $a = 3; // static variable
$b = 7;
$b++;
$a++;
echo $b, "\n";
echo $a, "\n";
}
staticKeyword(); //8 4
staticKeyword(); //8 5
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Isso significa que cada vez que a função for chamada, a variável ainda conterá as mesmas informações de antes.

Lembre-se: as variáveis ​​dentro das funções ainda são locais para elas.

Saber como o escopo das variáveis ​​do PHP funciona e como usá-las é essencial. Quando você entender o escopo padrão das variáveis ​​dentro e fora das funções e quando a palavra-chave global for necessária, poderá escrever um código PHP que funcione conforme o esperado. Os aplicativos PHP podem ser desenvolvidos de forma robusta e confiável quando você tem esse conhecimento.

Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone