Folha de consulta PHP
Uma referência pesquisável e imprimível de PHP 8.3+ — sintaxe, strings, arrays, funções, classes, enums, atributos e funcionalidades modernas. Grátis.
Básico e tipos
10declare(strict_types=1);
Forçar checagem estrita de tipos escalares
$x = 1;
Variáveis começam com cifrão
const MAX = 100;
Constante de tempo de compilação
gettype($x)
Obter o tipo de um valor
(int) $x
Converter para inteiro
is_int($x)
Auxiliar de checagem de tipo (is_string, ...)
int|string $x
Declaração de tipo union
?string $x
Tipo anulável (string ou null)
$a ?? 'default'
Operador de coalescência nula
$a ??= 'default'
Atribuir só se for null
Strings
11"Hello $name"
Aspas duplas interpolam variáveis
'literal $x'
Aspas simples são literais
$a . $b
Concatenar strings
strlen($s)
Tamanho em bytes de uma string
str_contains($s, 'a')
Verificar uma substring
str_starts_with($s, 'a')
Verificar o prefixo
substr($s, 0, 3)
Extrair parte de uma string
str_replace('a', 'b', $s)
Substituir todas as ocorrências
explode(',', $s)
Dividir em array
sprintf('%05.2f', $n)
Saída de string formatada
trim($s)
Remover espaços ao redor
Arrays
11$a = [1, 2, 3];
Literal de array indexado
$a = ['k' => 'v'];
Array associativo
array_map(fn($x) => $x * 2, $a)
Transformar cada elemento
array_filter($a, fn($x) => $x > 0)
Manter elementos correspondentes
array_reduce($a, $fn, 0)
Reduzir a um único valor
in_array($v, $a, true)
Verificação estrita de valor
array_keys($a)
Obter todas as chaves
array_merge($a, $b)
Mesclar arrays
[...$a, ...$b]
Espalhar/mesclar arrays
count($a)
Número de elementos
[$x, $y] = $a;
Desestruturação de array
Funções
9function f(int $a): int {}
Parâmetros e retorno tipados
function f(int $a = 1) {}
Valor padrão de parâmetro
function f(int ...$nums) {}
Parâmetros variádicos
f(...$args)
Espalhar argumentos
f(name: 'Sam', age: 30)
Argumentos nomeados
$fn = fn($x) => $x + 1;
Arrow function (captura o escopo automaticamente)
function () use ($x) {}
Closure capturando uma variável
$fn = strlen(...);
Sintaxe de callable de primeira classe
function f(): never {}
Nunca retorna (lança ou sai)
Fluxo de controle
9if ($a) {} elseif ($b) {} else {}
Ramos condicionais
$a ? $b : $c
Expressão ternária
$a ?: $b
Ternário curto (fallback falsy)
match ($x) { 1, 2 => 'a', default => 'b' }
match estrito, baseado em expressão
switch ($x) { case 1: break; }
Ramificação múltipla flexível
foreach ($a as $k => $v) {}
Iterar chaves e valores
for ($i = 0; $i < 10; $i++) {}
Loop contado
while ($cond) {}
Repetir enquanto a condição for verdadeira
break / continue
Sair ou pular uma iteração
Classes e OOP
10class A extends B implements C {}
Herança e interfaces
public function __construct(private int $id) {}
Promoção de propriedade no construtor
public readonly string $name;
Imutável após a inicialização
public function f(): static {}
Retornar o tipo de ligação tardia
static::create()
Ligação estática tardia
$obj?->method()
Chamada de método null-safe
abstract class A {}
Não pode ser instanciada diretamente
trait T {} use T;
Código horizontal reutilizável
$obj instanceof A
Checagem de tipo em tempo de execução
A::class
String com nome de classe totalmente qualificado
Enums
9enum Status { case Active; case Draft; }
Enumeração pura
enum Status: string { case A = 'a'; }
Enum com valor (string/int)
Status::Active
Referenciar um caso do enum
Status::from('a')
Criar a partir de um valor de apoio
Status::tryFrom('x')
Retorna null se inválido
Status::cases()
Array de todos os casos
$status->value
Valor de apoio de um caso
$status->name
Nome do caso
enum E { public function label() {} }
Enums podem ter métodos
Tratamento de erros
9try {} catch (Throwable $e) {}
Capturar erros e exceções
catch (TypeError | ValueError $e)
Capturar múltiplos tipos
catch (Exception)
catch sem captura (sem variável)
finally {}
Sempre executa após try/catch
throw new RuntimeException('x')
Lançar uma exceção
throw $e;
Relançar a exceção capturada
$x = $v ?? throw new Error();
Lançar como expressão
$e->getMessage()
Ler a mensagem de erro
$e->getPrevious()
Obter a exceção encadeada
Atributos e moderno
9#[Attribute] class Route {}
Declarar um atributo personalizado
#[Route('/home')]
Aplicar um atributo a um alvo
new ReflectionClass($x)
Inspecionar uma classe via reflexão
$ref->getAttributes()
Ler atributos declarados
json_encode($data)
Serializar para JSON
json_decode($s, true)
Decodificar JSON para array
array_is_list($a)
True se as chaves forem 0..n em ordem
str_word_count($s)
Contar palavras em uma string
$obj::class
Nome da classe a partir de uma instância
Nenhuma entrada corresponde a “:q”.
Precisa de ajuda?
Encontrou um problema com esta ferramenta? Avise a nossa equipa.