artigos

PHP a fundo, um artigo de cada vez.

Guias e artigos para estudar PHP a fundo — do manual oficial para a prática.

em destaque
18/09/2026 10 min de leitura

Mudei o php.ini e nada mudou: por que o PHP-FPM ignora sua alteração

Quase sempre é uma de duas coisas: você editou o php.ini do CLI (cada SAPI tem o seu) ou não recarregou o FPM. O php --ini mostra o do terminal, não o que a sua página usa — veja como descobrir o arquivo certo e conferir o valor que está realmente valendo.

php-fpmconfiguraçãoservidoropcache
Ler artigo
24/08/2026 9 min de leitura

Closure vs callable no PHP: qual a diferença e quando usar cada um

callable é um tipo que descreve "qualquer coisa que dá para chamar"; Closure é uma classe concreta. Todo Closure é callable, mas nem todo callable é Closure — e é por isso que public callable $cb dá fatal error.

closurescallablefunçõestipos
Ler
18/08/2026 9 min de leitura

Qual a diferença entre && e "and" no PHP (a pegadinha da precedência)

&& e "and" fazem a mesma lógica, mas têm precedência diferente: "and" vem depois do =, então $x = true and false guarda true em $x. Veja onde a pegadinha morde (só na atribuição), onde não morde, e por que essa precedência baixa existe de propósito.

operadoresprecedêncialógicasintaxe
Ler
14/08/2026 9 min de leitura

isset() vs empty() vs is_null() no PHP: qual usar e quando

isset pergunta se existe e não é null; empty pergunta se o valor é "falsy"; is_null pergunta se é exatamente null. Veja a tabela completa com '', '0', 0 e [] — e por que empty('0') é true derruba formulários todo dia.

issetemptynullvalidaçãotipos
Ler
10/08/2026 10 min de leitura

504 Gateway Timeout no PHP-FPM: qual dos três timeouts é o seu

Três relógios independentes correm ao mesmo tempo — max_execution_time (PHP), request_terminate_timeout (FPM) e fastcgi_read_timeout (nginx) — e vence o menor. Descubra qual disparou pela mensagem que cada um deixa, e por que aumentar só um nunca resolve.

php-fpmservidortimeoutnginxprodução
Ler
07/08/2026 9 min de leitura

Passagem por valor vs por referência no PHP: o que o & faz

Por padrão o PHP entrega uma cópia do valor para a função; com & você entrega a própria variável. Entenda por que arrays também são copiados, por que objetos parecem referência mas não são, e quando o & atrapalha mais do que ajuda.

referênciasfunçõesarraysobjetosmemória
Ler
03/08/2026 10 min de leitura

strlen vs mb_strlen no PHP: por que contar caracteres com acento dá errado

strlen('ação') devolve 6, não 4 — porque conta bytes, e em UTF-8 cada acento ocupa dois. Veja por que o corte com substr gera �, quais funções têm par mb_*, e quando strlen ainda é a escolha certa.

stringsutf-8mbstringacentuaçãovalidação
Ler
30/07/2026 10 min de leitura

'server reached pm.max_children setting' no PHP-FPM: o que isso significa e como calcular o número certo

O aviso significa que todos os workers ficaram ocupados e as requisições entraram na fila. Mas "consider raising it" é um conselho perigoso: o número certo sai da RAM disponível dividida pela memória por worker — aumentar no chute leva o servidor a swap e piora tudo.

php-fpmservidorperformancememóriaprodução
Ler
29/07/2026 8 min de leitura

Por que session_start() dá "headers already sent" no PHP

A sessão viaja num cabeçalho HTTP, e cabeçalho só existe antes do corpo da resposta. Qualquer saída antes — echo, HTML, um espaço ou BOM antes da tag de abertura — fecha os headers e a sessão não inicia. Veja como achar a linha culpada e corrigir de vez.

sessãocookiesheadershttpdepuração
Ler