Variáveis em PHP

A principal maneira de armazenar informações em um sistema, mesmo que temporariamente, é através de uma variável.

Variáveis são usadas para armazenar dados, como strings, números, char entre outros tipos de dados. Os valores podem mudar ao longo do ciclo de vida de um script.

Variáveis em PHP

Todas as variáveis em PHP são denotadas com um sinal de dólar $. Seu valor sempre será a atribuição mais recentes. Variáveis são atribuídas com o operador =, com a variável do lado esquerdo e a expressão a ser avaliada à direita.

Não é obrigatório que as variáveis sejam declaradas antes da atribuição.

 <?php
$txt = "Este é um exemplo de variável em PHP";
?>

Escopo de variáveis

Em PHP, variáveis podem ser declaradas em qualquer lugar do script. O escopo de uma variável é a parte do script onde a variável pode ser utilizada ou referenciada.

Temos três tipos de escopo:

  • Local
  • Global
  • Estático

Vamos debater quando utiliza-las.

Escopo de variável local

Uma variável declarada dentro de uma função tem um escopo local, e só pode ser acessada dentro dessa função.

 <?php
function funcaoTeste() {
    $variavelNome = 5; // variável local
    echo "<p>Variável Nome dentro da função é: $variavelNome </p>";
}
funcaoTeste(); //Chamo a função

// Caso eu tente recuperar o valor de variavelNome, terá um erro. Pois o escopo dela é local dentro da função.
echo "<p>Variável Nome dentro da função é: $variavelNome </p>";
?>

Escopo de variável global

Uma variável declarada fora de uma função tem um escopo GLOBAL. Só pode ser acessada fora de uma função.

 <?php
$variavelGlobal = 5; // variável Global

function funcaoTesteComVariavelGlobal() {
    // Não irá funcionar porque a variável está inacessível
    echo "<p>O valor da variavelGlobal é: $variavelGlobal </p>";
}
funcaoTesteComVariavelGlobal();

    echo "<p>O valor da variavelGlobal é: $variavelGlobal </p>";
?>

Caso você queira resgatar a variável de escopo global dentro de uma função, basta referencia-la com a palavra reservada global.

 <?php
 $variavelGlobal = 5; // variável Global

function funcaoTesteComVariavelGlobal() {

   // irá funcionar porque a variável global está acessível.
   global $variavelGlobal; 
   
    echo "<p>O valor da variavelGlobal é: $variavelGlobal </p>";
}
funcaoTesteComVariavelGlobal();

    echo "<p>O valor da variavelGlobal é: $variavelGlobal </p>";
?>

Estático

Normalmente, quando uma função é executada, todas os valores são apagados. No entanto, algumas vezes queremos o valor não seja apagado.

Para fazer isto, use a palavra-chave static quando declarar pela primeira vez a variável:

 <?php
    static $valorDiasSemJuros = 0;
?>

Tipos de variáveis

PHP tem um total de oito tipos de dados que usamos para construir nossas variáveis:

  • Inteiros – são números inteiros, sem um ponto decimal, como 4195.
  • Double: são números de ponto flutuante, como 3.14159 ou 49.1.
  • Booleanos: têm apenas dois valores possíveis, verdadeiro ou falso.
  • Null: é um tipo especial que só tem um valor: Null.
  • Strings: são sequências de caracteres, como ‘PHP suporta operações de string.’
  • Arrays: são chamadas e indexadas coleções de outros valores.
  • Objects: são instâncias de classes definidas por programadores, que podem empacotar ambos os outros tipos de valores e funções que são específicos à classe.
  • Resources: são variáveis especiais que possuem referências a recursos externos ao PHP (como conexões de banco de dados).

Convenção de nomes para variáveis

Uma variável pode ter um nome curto (como x e y) ou um nome mais descritivo (idade, _carro, quantidade_remedios).

Há algumas regras a serem seguidas:

  • Uma variável começa com o $, seguido pelo nome da variável
  • Um nome de variável deve começar com uma letra ou com o caractere sublinhado
  • Um nome de variável não pode começar com um número
  • Um nome de variável só pode conter caracteres alfanuméricos e sublinhados (a-z, 0-9, e _ )
  • Os nomes das variáveis são sensíveis a letras maíusculas e minúsculas (case sensitive). Por exemplo: variáveis $carro e $Carro são diferentes.