Fundamentos do PHP

0/25 aulas0%
teoria

Variáveis, constantes e tipos de dados em PHP

Aprenda sobre variáveis, constantes e tipos de dados em php

35 min
Aula 4 de 5

Módulo 1: Introdução ao PHP e Ambiente de Desenvolvimento

Aula: Variáveis, Constantes e Tipos de Dados em PHP

Olá! 👋 Bem-vindos à nossa aula sobre os blocos de construção fundamentais de qualquer programa PHP: variáveis, constantes e tipos de dados. Entender esses conceitos é crucial para escrever código eficaz e sem erros. Vamos mergulhar!


1. Introdução Clara: Guardando e Classificando Informações 📦

No mundo da programação, frequentemente precisamos armazenar informações para usá-las, modificá-las ou exibi-las. É aqui que entram as variáveis e constantes. Elas são como "caixas" ou "rótulos" para guardar valores. Além disso, cada pedaço de informação tem uma "natureza" específica, como um número, um texto ou uma data. Essa "natureza" é o que chamamos de tipo de dado.

Nesta aula, você aprenderá:

  • O que são e como usar variáveis para armazenar dados mutáveis.
  • O que são e como usar constantes para armazenar dados imutáveis.
  • Os diferentes tipos de dados que o PHP suporta e como eles afetam o comportamento do seu código.

Vamos começar! 🚀


2. Explicação Detalhada com Exemplos

2.1. Variáveis em PHP 🏷️

Uma variável é um contêiner para armazenar informações. Em PHP, as variáveis são muito flexíveis.

  • Sintaxe: Todas as variáveis em PHP começam com o símbolo de cifrão ($).
  • Atribuição: O operador de atribuição é o sinal de igual (=).
  • Case Sensitivity: Nomes de variáveis são case-sensitive (diferenciam maiúsculas de minúsculas). $nome é diferente de $Nome.
  • Dinamicamente Tipadas: O PHP é uma linguagem dinamicamente tipada, o que significa que você não precisa declarar o tipo de dado da variável. O PHP infere o tipo com base no valor atribuído. Além disso, o tipo de uma variável pode mudar durante a execução do script.

Regras para Nomes de Variáveis:

  • Devem começar com $.
  • Devem ser seguidos por uma letra ou um underscore (_).
  • Podem conter letras, números e underscores.
  • Não podem conter espaços.

Exemplo Oficial de Variáveis:

<?php
// Exemplo 1: Declarando e atribuindo valores
$nomeCompleto = "João da Silva"; // Variável do tipo string
$idade = 30;                  // Variável do tipo integer
$altura = 1.75;               // Variável do tipo float
$estaAtivo = true;            // Variável do tipo boolean
 
echo "Nome: " . $nomeCompleto . "\n";
echo "Idade: " . $idade . " anos\n";
echo "Altura: " . $altura . "m\n";
echo "Ativo: " . ($estaAtivo ? 'Sim' : 'Não') . "\n\n";
 
// Exemplo 2: Case sensitivity
$fruta = "Maçã";
$Fruta = "Banana"; // Variável diferente de $fruta
 
echo "Minha fruta favorita é: " . $fruta . "\n";
echo "Outra fruta é: " . $Fruta . "\n\n";
 
// Exemplo 3: Tipo dinâmico (re-atribuição com tipo diferente)
$valor = 100; // Tipo integer
echo "Valor inicial: " . $valor . " (Tipo: " . gettype($valor) . ")\n";
 
$valor = "Cem"; // Tipo string
echo "Valor após re-atribuição: " . $valor . " (Tipo: " . gettype($valor) . ")\n";
?>

2.2. Constantes em PHP 🔒

Constantes são identificadores (nomes) para um valor simples. Como o nome sugere, esse valor não pode ser alterado durante a execução do script.

  • Definição: Podem ser definidas usando a função define() ou a palavra-chave const.
  • Convenção: Por convenção, nomes de constantes são geralmente escritos em maiúsculas.
  • Escopo: Constantes são automaticamente globais em todo o script.
  • Case Sensitivity: Por padrão, constantes definidas com define() são case-sensitive. Você pode torná-las case-insensitive passando true como terceiro argumento (mas não é recomendado). Constantes definidas com const são sempre case-sensitive.

Métodos para Definir Constantes:

  1. define(name, value, case_insensitive):

    • Usado para definir constantes em tempo de execução.
    • name: O nome da constante.
    • value: O valor da constante.
    • case_insensitive: (Opcional) true para tornar a constante case-insensitive. Padrão é false.
  2. const NOME_DA_CONSTANTE = valor;:

    • Introduzido no PHP 5.3.
    • Usado para definir constantes em tempo de compilação (fora de classes, interfaces ou traits).
    • Mais performático que define() em alguns cenários.

Exemplo Oficial de Constantes:

<?php
// Exemplo 1: Usando define()
define("SITE_NOME", "Meu Blog PHP");
define("VERSAO_APP", 1.0);
 
echo "Nome do site: " . SITE_NOME . "\n";
echo "Versão do aplicativo: " . VERSAO_APP . "\n\n";
 
// Tentar redefinir uma constante causará um erro (ou um aviso dependendo da versão)
// define("SITE_NOME", "Novo Nome"); // Isso geraria um erro fatal
 
// Exemplo 2: Usando const (PHP 5.3+)
const MAX_USUARIOS = 500;
const STATUS_OK = 200;
 
echo "Número máximo de usuários: " . MAX_USUARIOS . "\n";
echo "Status de sucesso HTTP: " . STATUS_OK . "\n\n";
 
// Exemplo 3: Constantes Mágicas (Predefinidas)
// O PHP tem um conjunto de constantes pré-definidas que mudam de valor dependendo de onde são usadas.
echo "Linha atual: " . __LINE__ . "\n";
echo "Caminho completo do arquivo: " . __FILE__ . "\n";
echo "Nome da função (se dentro de uma): " . __FUNCTION__ . "\n"; // Vazio aqui, pois não estamos em uma função
echo "Nome da classe (se dentro de uma): " . __CLASS__ . "\n";   // Vazio aqui, pois não estamos em uma classe
?>

2.3. Tipos de Dados em PHP 📊

O PHP suporta vários tipos de dados. Compreender os tipos de dados é fundamental para manipular informações corretamente e evitar erros.

O PHP classifica os tipos de dados em:

  • Tipos Escalares (Unicidade): Representam um único valor.
    • string: Uma sequência de caracteres.
    • int: Números inteiros (sem casas decimais).
    • float (ou double): Números de ponto flutuante (com casas decimais).
    • bool: Valores booleanos (verdadeiro ou falso).
  • Tipos Compostos (Coleções): Podem armazenar múltiplos valores.
    • array: Um mapa ordenado. Pode ser usado como um array, lista, hash map, dicionário, coleção, pilha, fila, etc.
    • object: Uma instância de uma classe.
  • Tipos Especiais:
    • resource: Uma variável especial, que contém uma referência a um recurso externo (por exemplo, um arquivo aberto, uma conexão de banco de dados).
    • null: Indica que uma variável não tem valor.

Exemplo Oficial de Tipos de Dados:

<?php
// --- Tipos Escalares ---
 
// 1. String
$nome = "Alice"; // Aspas duplas
$mensagem = 'Olá, mundo!'; // Aspas simples
$paragrafo = "Este é um texto com 'aspas simples' e \"aspas duplas\".";
 
echo "String 1: " . $nome . "\n";
echo "String 2: " . $mensagem . "\n";
echo "String 3: " . $paragrafo . "\n";
echo "Tipo de \$nome: " . gettype($nome) . "\n\n";
 
// 2. Integer
$idade = 25;
$quantidade = -10;
$numeroHex = 0x1A; // 26 em decimal
$numeroOctal = 012; // 10 em decimal
$numeroBinario = 0b1011; // 11 em decimal
 
echo "Integer 1: " . $idade . "\n";
echo "Integer 2: " . $quantidade . "\n";
echo "Integer Hex: " . $numeroHex . "\n";
echo "Integer Octal: " . $numeroOctal . "\n";
echo "Integer Binário: " . $numeroBinario . "\n";
echo "Tipo de \$idade: " . gettype($idade) . "\n\n";
 
// 3. Float (Double)
$preco = 19.99;
$temperatura = -2.5;
$pi = 3.14159;
 
echo "Float 1: " . $preco . "\n";
echo "Float 2: " . $temperatura . "\n";
echo "Float PI: " . $pi . "\n";
echo "Tipo de \$preco: " . gettype($preco) . "\n\n";
 
// 4. Boolean
$usuarioLogado = true;
$temPermissao = false;
 
echo "Usuário Logado: " . ($usuarioLogado ? 'Sim' : 'Não') . "\n";
echo "Tem Permissão: " . ($temPermissao ? 'Sim' : 'Não') . "\n";
echo "Tipo de \$usuarioLogado: " . gettype($usuarioLogado) . "\n\n";
 
// --- Tipos Compostos ---
 
// 5. Array
$frutas = ["Maçã", "Banana", "Laranja"]; // Array indexado
$usuario = [
    "nome" => "Carlos",
    "email" => "carlos@example.com",
    "idade" => 35
]; // Array associativo
 
echo "Fruta 1: " . $frutas[0] . "\n";
echo "Email do usuário: " . $usuario["email"] . "\n";
echo "Tipo de \$frutas: " . gettype($frutas) . "\n\n";
 
// 6. Object (Exemplo simples, classes serão abordadas em outro módulo)
class Pessoa {
    public $nome;
    function __construct($n) {
        $this->nome = $n;
    }
}
$pessoa1 = new Pessoa("Maria");
echo "Nome do objeto: " . $pessoa1->nome . "\n";
echo "Tipo de \$pessoa1: " . gettype($pessoa1) . "\n\n";
 
// --- Tipos Especiais ---
 
// 7. Resource (Exemplo de abertura de arquivo)
$arquivo = fopen("exemplo.txt", "w"); // Abre o arquivo para escrita
if (is_resource($arquivo)) {
    fwrite($arquivo, "Conteúdo de exemplo.");
    echo "Arquivo 'exemplo.txt' aberto e escrito. Tipo: " . gettype($arquivo) . "\n";
    fclose($arquivo); // Fecha o arquivo
} else {
    echo "Falha ao abrir o arquivo.\n";
}
echo "Tipo de \$arquivo (após fechamento, pode variar): " . gettype($arquivo) . "\n\n";
 
 
// 8. Null
$variavelNula = null;
$outraVariavel; // Declarada, mas não atribuída, tem valor NULL por padrão
 
echo "Variável Nula: " . var_export($variavelNula, true) . "\n"; // var_export mostra 'NULL'
echo "Tipo de \$variavelNula: " . gettype($variavelNula) . "\n";
echo "Variável não atribuída é nula? " . (is_null($outraVariavel) ? 'Sim' : 'Não') . "\n\n";
 
// --- Type Juggling (Coerção de Tipos) ---
// O PHP tenta converter tipos automaticamente quando necessário.
$numString = "10";
$numInt = 5;
$resultado = $numString + $numInt; // "10" é convertido para 10
echo "Resultado de '10' + 5: " . $resultado . "\n"; // Output: 15
echo "Tipo do resultado: " . gettype($resultado) . "\n\n";
 
$boolTrue = true;
$intNum = 1;
$resultadoBoolInt = $boolTrue + $intNum; // true é convertido para 1
echo "Resultado de true + 1: " . $resultadoBoolInt . "\n"; // Output: 2
?>

Observação sobre gettype(): A função gettype() é útil para depuração, mas para verificações de tipo robustas em lógica de programação, é mais comum usar funções como is_string(), is_int(), is_array(), is_null(), etc.


5. Exercícios/Desafios 🧠

Para fixar o conteúdo, tente resolver os seguintes desafios:

  1. Variáveis e Tipos:

    • Declare uma variável $nomeProduto e atribua a ela o valor "Smartphone X".
    • Declare uma variável $precoUnitario e atribua a ela o valor 999.99.
    • Declare uma variável $quantidadeEstoque e atribua a ela o valor 50.
    • Declare uma variável $disponivelParaVenda e atribua a ela o valor true.
    • Exiba o valor e o tipo de cada uma dessas variáveis usando echo e gettype().
  2. Constantes:

    • Defina uma constante IMPOSTO_PADRAO com o valor 0.18 (18%).
    • Defina uma constante NOME_EMPRESA com o valor "Tech Solutions Ltda." usando const.
    • Calcule o preço final de um produto de $150.00 aplicando o IMPOSTO_PADRAO e armazene o resultado em uma nova variável $precoComImposto.
    • Exiba o NOME_EMPRESA, o IMPOSTO_PADRAO e o $precoComImposto.
  3. Coerção de Tipos (Type Juggling):

    • Preveja o resultado e o tipo de dado final das seguintes operações:
      • "100" + 20
      • "PHP" . 7.4
      • true + false
      • "5 maçãs" + 3
    • Escreva o código PHP para verificar suas previsões.

6. Resumo e Próximos Passos 🚀

Nesta aula, você aprendeu os pilares da manipulação de dados em PHP:

  • Variáveis: Contêineres flexíveis para armazenar dados que podem mudar. Sempre começam com $.
  • Constantes: Valores fixos que não podem ser alterados após a definição, ideais para configurações e valores globais. Definidas com define() ou const.
  • Tipos de Dados: A "natureza" dos valores (string, int, float, bool, array, object, resource, null). O PHP é dinamicamente tipado e realiza coerção de tipos automaticamente.

Dominar esses conceitos é o primeiro passo para escrever código PHP robusto. Na próxima aula, exploraremos os Operadores em PHP, que nos permitirão realizar operações com essas variáveis e constantes.

Até lá, pratique bastante! Se tiver dúvidas, revise a documentação oficial do PHP:

© 2025 Escola All Dev. Todos os direitos reservados.

Variáveis, constantes e tipos de dados em PHP - Fundamentos do PHP | escola.all.dev.br