Variáveis e tipos de dados
As variáveis são como caixas etiquetadas — você coloca os dados dentro de uma caixa, coloca uma etiqueta e, mais tarde, usa a etiqueta para encontrá-los. No PHP, o nome de toda variável deve começar com
$— essa é a característica mais marcante do PHP.
1. Declaração e nomeação de variáveis
Declarar uma variável em PHP é simples: $ + nome da variável = valor. Não é preciso declarar um tipo primeiro, ao contrário do que acontece em C ou Java.
<?php
$name = "John"; // String
$age = 25; // Integer
$height = 1.75; // Float
$isStudent = true; // Boolean
?>
(1) Regras de nomenclatura
| Regra | ✅ Correto | ❌ Errado |
|---|---|---|
Deve começar com $ |
$name |
name (sem $) |
Letra ou sublinhado após $ |
$name, $_name |
$1name, $-name |
| Seguido por letras, dígitos e sublinhados | $user_id, $user2 |
$user-id, $user@id |
| Distingue maiúsculas de minúsculas | $name ≠ $Name |
|
| Usar camelCase | $firstName, $userAge |
$ são herdados do Perl. Isso faz com que as variáveis do PHP sejam reconhecidas imediatamente quando misturadas com HTML.
2. Os oito tipos de dados do PHP
O PHP possui 8 tipos primitivos, agrupados em três categorias:
| Categoria | Tipo | Exemplo | Descrição |
|---|---|---|---|
| Escalar | string |
"Hello" |
Uma sequência de caracteres |
int |
42 |
Números inteiros | |
float |
3.14 |
Números de ponto flutuante (também chamados de double) |
|
bool |
true / false |
Valores booleanos | |
| Composto | array |
[1, 2, 3] |
Mapa ordenado de valores |
object |
new User() |
Instâncias de classes | |
callable |
Uma função de retorno de chamada | Tipo chamável | |
iterable |
Traversável | Tipo iterável | |
| Especial | null |
null |
Representa nenhum valor |
resource |
Identificador de arquivo / conexão com banco de dados | Referência a um recurso externo |
▶ Exemplo: Verificando os tipos das variáveis com o var_dump
<?php
$name = "John";
$age = 25;
$price = 19.99;
$isValid = true;
$nothing = null;
var_dump($name); // string(4) "John"
var_dump($age); // int(25)
var_dump($price); // float(19.99)
var_dump($isValid); // bool(true)
var_dump($nothing); // NULL
?>
3. Strings — Uso básico
<?php
$s1 = 'PHP Tutorial'; // Single quotes: literal string, no variable parsing
$s2 = "PHP Tutorial"; // Double quotes: parses variables and escape sequences
$name = "John";
echo 'Hello $name'; // Hello $name — single quotes don't parse variables
echo "Hello $name"; // Hello John — double quotes parse variables
?>
| Sintaxe | Analisa variáveis? | Analisa sequências de escape? | Ideal para |
|---|---|---|---|
'Single quotes' |
Não | Apenas \\ e \' |
Texto simples |
"Double quotes" |
Sim | Analisa \n \t etc. |
Inserção de variáveis |
Vamos nos aprofundar no assunto das cadeias de caracteres na próxima aula.
▶ Exemplo: Comparação entre aspas simples e duplas
<?php
$name = "John";
// Single quotes: output exactly as written
echo 'Hello, $name!\nNice weather today.';
// Output: Hello, $name!\nNice weather today.
// Double quotes: parse variables and escape sequences
echo "Hello, $name!\nNice weather today.";
// Output: Hello, John! (newline) Nice weather today.
?>
4. Números inteiros (int) e números de precisão flutuante (float)
<?php
$decimal = 42; // Decimal
$hex = 0x2A; // Hexadecimal (=42)
$octal = 052; // Octal (=42)
$binary = 0b101010; // Binary (=42)
$float1 = 3.14; // Float
$float2 = 1.2e3; // Scientific notation = 1200
$float3 = 7E-10; // Scientific notation = 0.0000000007
?>
0.1 + 0.2 em PHP não é igual a 0.3 — é algo como 0.30000000000000004. Ao trabalhar com valores monetários, armazene os valores em centavos como números inteiros ou use a extensão bcmath.
5. Valores booleanos (bool)
Os valores booleanos têm apenas dois valores: true e false. Não há distinção entre maiúsculas e minúsculas, mas a convenção é usar letras minúsculas.
<?php
$isLogin = true;
$isAdmin = false;
if ($isLogin) {
echo "Welcome back!";
}
?>
echo true exibe 1; echo false exibe uma string vazia (não aparece nada). Use var_dump() para verificar valores booleanos.
6. Funções de verificação de tipos
<?php
$name = "John";
$age = 25;
var_dump(is_string($name)); // bool(true)
var_dump(is_int($age)); // bool(true)
var_dump(is_float($age)); // bool(false)
var_dump(is_bool($age)); // bool(false)
var_dump(is_array($name)); // bool(false)
// gettype() returns the type name (for debugging, not logic)
echo gettype($name); // string
?>
| Função | Verifica se |
|---|---|
is_string() |
String |
is_int() |
Inteiro |
is_float() |
Flutuante |
is_bool() |
Booleano |
is_array() |
Matriz |
is_null() |
NULL |
is_numeric() |
Número ou sequência numérica |
7. Conversão de tipos
O PHP é uma linguagem de tipagem fraca e converte tipos automaticamente. Você também pode fazer a conversão explicitamente:
<?php
// Automatic conversion
$result = "10" + 5; // 15 ("10" converted to number)
$text = "10" . 5; // "105" (5 converted to string)
// Explicit conversion
$intVal = (int) "123"; // 123
$floatVal = (float) "3.14"; // 3.14
$strVal = (string) 123; // "123"
$boolVal = (bool) 1; // true
?>
▶ Exemplo: Conversão de tipos na prática
<?php
// String to number
$a = (int) "42";
echo $a + 8; // 50
// Number to string
$b = (string) 100;
echo "Price: " . $b . " yuan"; // Price: 100 yuan
// Boolean conversion rules: these values are treated as false
echo (int)((bool)0); // 0
echo (int)((bool)""); // 0
echo (int)((bool)[]); // 0
echo (int)((bool)null); // 0
// All other values are true
?>
"0", "", 0, [] e null são todos false em um contexto booleano. Se você não conseguir se lembrar, basta testar com var_dump((bool)$x).
8. isset() e empty()
Estas são três das funções de manipulação de variáveis mais utilizadas no PHP:
<?php
$var1 = "Hello";
$var2 = null;
// isset(): variable is set and not null → true
var_dump(isset($var1)); // bool(true)
var_dump(isset($var2)); // bool(false)
var_dump(isset($notExist)); // bool(false) — doesn't exist
// empty(): variable is empty → true ("", 0, "0", null, false, [] are all "empty")
var_dump(empty($var1)); // bool(false) — "Hello" is not empty
var_dump(empty($var2)); // bool(true) — null is empty
var_dump(empty(0)); // bool(true) — 0 is considered empty!
var_dump(empty($notExist)); // bool(true) — not existing is also considered empty
?>
▶ Exemplo: comparação lado a lado entre isset e empty
<?php
function testVar(string $label, mixed $value): void {
echo "$label — isset: " . (isset($value) ? 'true' : 'false');
echo " | empty: " . (empty($value) ? 'true' : 'false') . "<br>";
}
testVar('"Hello"', "Hello");
testVar('""', "");
testVar('0', 0);
testVar('null', null);
// Observe the isset and empty results for each value
?>
empty(0) retorna true! O número 0 é considerado “vazio”. Ao validar se um número foi inserido, use isset() combinado com is_numeric() — não use empty().
❓ Perguntas Frequentes
P: Por que o comando
echo falsenão exibe nada? R: Porqueecho falseé equivalente aecho ""(cadeia vazia). Para verificar um valor booleano, usevar_dump($var)ouecho $var ? 'true' : 'false'.
P: Quando devo usar
isset()em vez deempty()? R:isset()verifica se “a variável existe e não é nula” — use-a para verificar se um formulário foi enviado.empty()verifica se “a variável está vazia/é zero/é falsa?” — use-a para validar se o campo de entrada está em branco. Para verificar entradas numéricas, useisset()+is_numeric()— nuncaempty().
P: O PHP é uma linguagem de tipagem fraca. Isso faz com que erros de tipagem sejam comuns? R: Adote dois hábitos: (1) Use
===em vez de==para comparações (a comparação estrita não converte tipos automaticamente); (2) Adicione declarações de tipo aos parâmetros das funções (o PHP 7+ oferece suporte a isso). Abordaremos esses pontos em detalhes mais adiante.
📖 Resumo
- As variáveis começam com
$, seguem a convenção de nomenclatura camelCase e diferenciam maiúsculas de minúsculas - O PHP possui 8 tipos: 4 escalares + 4 compostos/especiais
var_dump()mostra o valor e o tipo de uma variável — sua ferramenta indispensável para depuração- As aspas duplas interpretam as variáveis; as aspas simples, não
(int),(string), etc. realizam conversão explícita de tiposisset()verifica se existe e se não é nulo;empty()verifica se está vazio (0 também é considerado vazio)
📝 Exercícios
- Crie três variáveis de tipos diferentes (string, inteiro, booleano) e use
var_dump()egettype()para verificar cada uma delas. - Escreva um código para testar como
isset()eempty()se comportam com os seguintes valores:"Hello","",0,nulle uma variável indefinida. Resuma as diferenças. - Faça um exercício de conversão de tipos: pegue uma string de preço inserida pelo usuário, como
"$99.9", e converta-a em um número de tipo float que possa ser calculado. Tente com(float)— isso funciona diretamente? Se não, pense em como lidar com isso.



