Como usar o compilador PHP online
- Escreva ou cole um script PHP no editor. A tag de abertura
<?phpé opcional; se o seu código não tiver nenhuma tag PHP, ela é adicionada para você. Templates que misturam HTML e blocos<?php ... ?>também funcionam. Restaurar exemplo traz de volta o código inicial. - Clique em Executar ou use Ctrl + Enter (⌘ + Enter no Mac).
- Tudo o que seu script produz com
echo,print,printfouvar_dumpaparece no painel Saída. Avisos e erros fatais ficam destacados. - Escolha um limite de tempo de 5, 15 ou 60 segundos. Scripts que demoram mais são interrompidos automaticamente, e Parar encerra a execução na hora.
A primeira execução baixa o interpretador PHP, cerca de 12 MB. Seu navegador o guarda em cache, então as execuções seguintes começam bem mais rápido. Use Copiar ou main.php para guardar seu script.
O PHP roda localmente dentro do seu navegador, então seu código nunca é enviado nem armazenado em nossos servidores. O editor lembra seu último script no armazenamento local do navegador, e em nenhum outro lugar.
O que é compatível
O compilador usa o PHP 8 por meio do php-wasm, o interpretador PHP compilado para WebAssembly. Não é uma simulação; seu código é executado pelo próprio PHP.
- Sintaxe do PHP 8: propriedades tipadas, union types, expressões
match, argumentos nomeados, arrow functions (fn), o operador nullsafe (?->) e enums nos casos em que a versão incluída os aceita. - Funções básicas para strings (
str_contains,sprintf,explode), arrays (array_map,usort,array_filter), matemática e datas. - JSON com
json_encodeejson_decode. - Expressões regulares com as funções
preg_*. - Classes, interfaces, traits, closures, generators e exceções.
Limitações:
- Sem extensões de rede:
curl, sockets e requisições HTTP não estão disponíveis. - Sem servidor de banco de dados: não há MySQL nem PostgreSQL para se conectar. Para praticar SQL, use o compilador SQL online.
- Sem contexto de servidor web:
$_GET,$_POST, sessões e cookies não recebem dados reais de requisição, e a saída HTML é mostrada como texto, não renderizada. - Sem pacotes do Composer e sem entrada padrão.
Referência rápida de PHP
<?php
$prices = ['apple' => 1.20, 'bread' => 2.50, 'milk' => 0.99];
$expensive = array_filter($prices, fn($p) => $p > 1);
arsort($expensive);
foreach ($expensive as $item => $price) {
printf("%-6s %5.2f\n", $item, $price);
}
$label = match (true) {
count($prices) > 2 => 'big basket',
default => 'small basket',
};
echo $label, PHP_EOL;
echo json_encode($prices, JSON_PRETTY_PRINT), "\n";
| Tarefa | Sintaxe |
|---|---|
| Variável | $name = "Ada"; |
| Interpolação de string | "Hello, {$name}!" |
| Array associativo | $a = ['key' => 'value']; |
| Percorrer chaves e valores | foreach ($a as $k => $v) { } |
| Inspecionar um valor | var_dump($x); ou print_r($x); |
| Null coalescing | $v = $a['x'] ?? 'default'; |
Dicas
- Termine as linhas com
"\n"ouPHP_EOL; oechonão adiciona uma quebra de linha sozinho. - Use
print_r($array)para uma visão compacta de arrays aninhados, ouvar_dump()quando também precisar de tipos e tamanhos. - Para um JSON legível, passe
JSON_PRETTY_PRINTou cole a saída no formatador de JSON para validá-la. - Cada execução inicia um interpretador novo, então variáveis e funções da execução anterior não são mantidas.
preg_match? Monte e depure o padrão primeiro no testador de regex e depois cole-o entre os delimitadores, por exemplo '/^\d+$/'.Perguntas frequentes
Preciso começar meu código com <?php?
Não. Se o script não tiver a tag <?php, ela é adicionada automaticamente. Você também pode escrever HTML com blocos <?php ... ?> embutidos, exatamente como em um arquivo .php em um servidor web.
Posso me conectar ao MySQL?
Não. O interpretador roda no seu navegador, sem acesso à rede nem servidor de banco de dados. Para praticar SQL, o compilador SQL oferece um banco SQLite de verdade no navegador.
Por que curl ou file_get_contents() com uma URL não funcionam?
As extensões de rede não estão incluídas nesta versão em WebAssembly, e os navegadores não permitem conexões de rede diretas a partir de um ambiente isolado como este.
Isso é o mesmo que executar PHP em um servidor?
Para recursos da linguagem e funções de string, array e JSON, sim: é o motor PHP de verdade. Qualquer coisa que dependa de um servidor web, de extensões ou da rede se comporta de outra forma.
Atualizado