Variáveis
Esta aula apresenta os conceitos fundamentais de variáveis em PHP, incluindo declaração com o símbolo $, tipagem dinâmica, escopo de variáveis e o recurso de variáveis variáveis. Através de exemplos práticos, o aluno aprenderá como criar e manipular variáveis, compreenderá a flexibilidade da tipagem e entenderá as regras de visibilidade.
Nesta aula, vamos explorar o conceito de variáveis em PHP, que são fundamentais para armazenar e manipular dados. Em PHP, as variáveis são representadas pelo símbolo $ seguido de um nome, e possuem características como tipagem dinâmica, escopo definido e a possibilidade de criar variáveis com nomes dinâmicos. Compreender esses aspectos é essencial para escrever código eficiente e evitar erros comuns.
Declaração e $
Em PHP, toda variável deve começar com o símbolo $ seguido de um nome que comece com uma letra ou sublinhado (_). O nome pode conter letras, números e sublinhados, mas não pode começar com número. A declaração ocorre no momento da primeira atribuição, não sendo necessário declarar o tipo. Exemplos:
<?php
$nome = "João";
$idade = 25;
$_salario = 1500.50;
?>
O PHP é sensível a maiúsculas e minúsculas, portanto $nome e $Nome são variáveis diferentes.
Tipagem dinâmica
PHP é uma linguagem de tipagem dinâmica, o que significa que uma mesma variável pode conter valores de diferentes tipos ao longo do programa. O tipo é determinado pelo valor atribuído e pode ser alterado. Exemplo:
<?php
$valor = 10; // inteiro
$valor = "dez"; // agora é string
$valor = 10.5; // agora é float
?>
Isso oferece flexibilidade, mas requer cuidado para evitar erros de lógica. Funções como var_dump() ajudam a inspecionar o tipo e valor de uma variável:
<?php
$valor = 10;
var_dump($valor); // int(10)
$valor = "texto";
var_dump($valor); // string(5) "texto"
?>
Escopo
Escopo refere-se à região do código onde uma variável é acessível. Em PHP, existem três escopos principais: global, local e estático.
- Global: Variáveis declaradas fora de funções são globais e podem ser acessadas em qualquer lugar, exceto dentro de funções sem a palavra-chave
global. - Local: Variáveis declaradas dentro de uma função são locais e só existem dentro dela.
- Estático: Variáveis estáticas (
static) dentro de funções mantêm seu valor entre chamadas.
Exemplo de escopo global e local:
<?php
$global = "Fora";
function teste() {
$local = "Dentro";
echo $local; // funciona
echo $global; // erro: variável não definida
}
teste();
echo $global; // funciona
echo $local; // erro
?>
Para acessar uma variável global dentro de uma função, use a palavra-chave global:
<?php
$global = "Fora";
function teste() {
global $global;
echo $global; // imprime "Fora"
}
teste();
?>
Variáveis estáticas:
<?php
function contador() {
static $cont = 0;
$cont++;
echo $cont . "\n";
}
contador(); // 1
contador(); // 2
contador(); // 3
?>
Variáveis variáveis
PHP permite criar variáveis com nomes dinâmicos usando o conceito de variáveis variáveis. Isso é feito ao usar dois sinais de $. O valor de uma variável é usado como nome de outra variável. Exemplo:
<?php
$nome = "cidade";
$$nome = "São Paulo"; // cria $cidade com valor "São Paulo"
echo $cidade; // imprime "São Paulo"
?>
É útil em situações como iteração sobre arrays associativos ou criação dinâmica de variáveis, mas deve ser usado com cautela para não tornar o código confuso.
Referências
- PHP Manual: Variáveis
- PHP Manual: Básico de variáveis
- PHP Manual: Escopo de variáveis
- PHP Manual: Variáveis variáveis
Exercícios
-
Declare uma variável chamada
$produtocom o valor "Notebook" e uma variável$precocom o valor 2500. Em seguida, exiba ambos usandoecho.<?php $produto = "Notebook"; $preco = 2500; echo "Produto: $produto, Preço: $preco"; ?> -
Qual será a saída do código a seguir? Explique brevemente.
<?php $a = 10; $a = "PHP"; echo $a; ?>Saída:
PHP. A variável$ainicialmente recebe o valor inteiro 10, mas depois é reatribuída com a string "PHP". Como PHP é de tipagem dinâmica, o tipo muda de inteiro para string, e o último valor é exibido. -
Crie uma função que utilize uma variável estática para contar quantas vezes foi chamada. Chame a função três vezes e exiba o contador a cada chamada.
<?php function contar() { static $contador = 0; $contador++; echo "Chamada $contador\n"; } contador(); // Chamada 1 contador(); // Chamada 2 contador(); // Chamada 3 ?> -
Usando variáveis variáveis, crie uma variável
$animalcom o valor "cachorro" e, em seguida, crie uma variável com o nome armazenado em$animale atribua a ela o valor "Rex". Exiba o valor da variável$cachorro.<?php $animal = "cachorro"; $$animal = "Rex"; echo $cachorro; // Rex ?> -
Escreva um código que demonstre a diferença entre escopo global e local: crie uma variável global
$nomecom valor "Maria", e dentro de uma função tente imprimir$nomesem usarglobal. Explique o erro.<?php $nome = "Maria"; function exibirNome() { echo $nome; // Aviso: variável não definida } exibirNome(); ?>O PHP exibirá um aviso (notice) informando que a variável
$nomenão está definida no escopo local, pois não foi declarada dentro da função e não foi importada comglobal.