Come usare il compilatore PHP online
- Scrivi o incolla uno script PHP nell'editor. Il tag di apertura
<?phpè facoltativo; se il tuo codice non contiene alcun tag PHP, viene aggiunto per te. Funzionano anche i template che mescolano HTML e blocchi<?php ... ?>. Ripristina esempio riporta il codice iniziale. - Premi Esegui oppure usa Ctrl + Invio (⌘ + Invio su Mac).
- Tutto ciò che lo script produce con
echo,print,printfovar_dumpappare nel pannello Output. Avvisi ed errori fatali sono evidenziati. - Scegli un limite di tempo di 5, 15 o 60 secondi. Gli script che durano di più vengono interrotti automaticamente, e Interrompi ferma subito l'esecuzione.
La prima esecuzione scarica l'interprete PHP, circa 12 MB. Il browser lo mette in cache, quindi le esecuzioni successive partono molto più in fretta. Usa Copia o main.php per conservare lo script.
PHP viene eseguito in locale nel tuo browser, quindi il tuo codice non viene mai inviato né salvato sui nostri server. L'editor ricorda il tuo ultimo script nel local storage del browser e in nessun altro posto.
Cosa è supportato
Il compilatore usa PHP 8 tramite php-wasm, l'interprete PHP compilato in WebAssembly. Non è una simulazione: il tuo codice viene eseguito da PHP stesso.
- Sintassi PHP 8: proprietà tipizzate, union type, espressioni
match, argomenti con nome, arrow function (fn), operatore nullsafe (?->) ed enum dove la versione inclusa li supporta. - Funzioni di base per stringhe (
str_contains,sprintf,explode), array (array_map,usort,array_filter), matematica e date. - JSON con
json_encodeejson_decode. - Espressioni regolari con le funzioni
preg_*. - Classi, interfacce, trait, closure, generatori ed eccezioni.
Limitazioni:
- Nessuna estensione di rete:
curl, socket e richieste HTTP non sono disponibili. - Nessun server di database: non c'è MySQL o PostgreSQL a cui connettersi. Per esercitarti con SQL usa il compilatore SQL online.
- Nessun contesto di web server:
$_GET,$_POST, sessioni e cookie non ricevono dati reali di richiesta, e l'output HTML viene mostrato come testo, non renderizzato. - Nessun pacchetto Composer e nessuno standard input.
Riferimento rapido 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";
| Operazione | Sintassi |
|---|---|
| Variabile | $name = "Ada"; |
| Interpolazione di stringhe | "Hello, {$name}!" |
| Array associativo | $a = ['key' => 'value']; |
| Ciclo su chiavi e valori | foreach ($a as $k => $v) { } |
| Ispezionare un valore | var_dump($x); oppure print_r($x); |
| Null coalescing | $v = $a['x'] ?? 'default'; |
Consigli
- Termina le righe con
"\n"oPHP_EOL;echonon aggiunge da solo un a capo. - Usa
print_r($array)per una vista compatta degli array annidati, oppurevar_dump()quando servono anche tipi e lunghezze. - Per un JSON leggibile passa
JSON_PRETTY_PRINT, oppure incolla l'output nel formattatore JSON per validarlo. - Ogni esecuzione avvia un interprete nuovo, quindi variabili e funzioni dell'esecuzione precedente non vengono conservate.
preg_match? Costruiscilo e correggilo prima nel tester regex, poi incollalo tra i delimitatori, per esempio '/^\d+$/'.Domande frequenti
Devo iniziare il codice con <?php?
No. Se lo script non contiene alcun tag <?php, ne viene aggiunto uno automaticamente. Puoi anche scrivere HTML con blocchi <?php ... ?> incorporati, esattamente come in un file .php su un web server.
Posso connettermi a MySQL?
No. L'interprete gira nel tuo browser senza accesso alla rete né a un server di database. Per esercitarti con SQL, il compilatore SQL ti offre un vero database SQLite nel browser.
Perché curl o file_get_contents() con un URL non funzionano?
Le estensioni di rete non sono incluse in questa build WebAssembly, e i browser non permettono connessioni di rete dirette da una sandbox come questa.
È come eseguire PHP su un server?
Per le funzionalità del linguaggio e le funzioni per stringhe, array e JSON sì: è il vero motore PHP. Tutto ciò che dipende da un web server, da estensioni o dalla rete si comporta diversamente.
Aggiornato