So nutzen Sie den Online-PHP-Compiler
- Schreiben oder fügen Sie ein PHP-Skript in den Editor ein. Das öffnende
<?php-Tag ist optional; enthält Ihr Code gar kein PHP-Tag, wird es für Sie ergänzt. Auch Templates, die HTML und<?php ... ?>-Blöcke mischen, funktionieren. Beispiel zurücksetzen stellt den Startcode wieder her. - Drücken Sie Ausführen oder verwenden Sie Strg + Enter (⌘ + Enter auf dem Mac).
- Alles, was Ihr Skript mit
echo,print,printfodervar_dumpausgibt, erscheint im Bereich Ausgabe. Warnungen und schwere Fehler werden hervorgehoben. - Wählen Sie ein Zeitlimit von 5, 15 oder 60 Sekunden. Skripte, die länger laufen, werden automatisch gestoppt, und Stopp beendet einen Lauf sofort.
Beim ersten Ausführen wird der PHP-Interpreter heruntergeladen, etwa 12 MB. Ihr Browser speichert ihn im Cache, sodass spätere Läufe deutlich schneller starten. Mit Kopieren oder main.php sichern Sie Ihr Skript.
PHP läuft lokal in Ihrem Browser, Ihr Code wird also nie an unsere Server gesendet oder dort gespeichert. Der Editor merkt sich Ihr letztes Skript im lokalen Speicher Ihres Browsers und nirgendwo sonst.
Was unterstützt wird
Der Compiler nutzt PHP 8 über php-wasm, den zu WebAssembly kompilierten PHP-Interpreter. Es ist keine Simulation; Ihr Code wird von PHP selbst ausgeführt.
- PHP-8-Syntax: typisierte Eigenschaften, Union Types,
match-Ausdrücke, benannte Argumente, Arrow Functions (fn), der Nullsafe-Operator (?->) und Enums, soweit die mitgelieferte Version sie unterstützt. - Kernfunktionen für Zeichenketten (
str_contains,sprintf,explode), Arrays (array_map,usort,array_filter), Mathematik und Datum. - JSON mit
json_encodeundjson_decode. - Reguläre Ausdrücke mit den
preg_*-Funktionen. - Klassen, Interfaces, Traits, Closures, Generatoren und Exceptions.
Einschränkungen:
- Keine Netzwerk-Erweiterungen:
curl, Sockets und HTTP-Anfragen sind nicht verfügbar. - Kein Datenbankserver: Es gibt kein MySQL oder PostgreSQL, mit dem man sich verbinden könnte. Zum Üben von SQL nutzen Sie den Online-SQL-Compiler.
- Kein Webserver-Kontext:
$_GET,$_POST, Sessions und Cookies erhalten keine echten Anfragedaten, und HTML-Ausgabe wird als Text angezeigt, nicht gerendert. - Keine Composer-Pakete und keine Standardeingabe.
PHP-Kurzreferenz
<?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";
| Aufgabe | Syntax |
|---|---|
| Variable | $name = "Ada"; |
| Zeichenketten-Interpolation | "Hello, {$name}!" |
| Assoziatives Array | $a = ['key' => 'value']; |
| Schleife über Schlüssel und Werte | foreach ($a as $k => $v) { } |
| Einen Wert untersuchen | var_dump($x); oder print_r($x); |
| Null-Coalescing | $v = $a['x'] ?? 'default'; |
Tipps
- Beenden Sie Zeilen mit
"\n"oderPHP_EOL;echofügt von selbst keinen Zeilenumbruch hinzu. - Verwenden Sie
print_r($array)für eine kompakte Ansicht verschachtelter Arrays odervar_dump(), wenn Sie zusätzlich Typen und Längen brauchen. - Für gut lesbares JSON übergeben Sie
JSON_PRETTY_PRINToder fügen die Ausgabe zur Prüfung in den JSON-Formatter & Validator ein. - Jeder Lauf startet einen frischen Interpreter, daher bleiben Variablen und Funktionen des vorherigen Laufs nicht erhalten.
preg_match-Muster? Erstellen und debuggen Sie es zuerst im Regex-Tester und fügen Sie es dann zwischen die Begrenzer ein, zum Beispiel '/^\d+$/'.Häufig gestellte Fragen
Muss ich meinen Code mit <?php beginnen?
Nein. Enthält das Skript kein <?php-Tag, wird automatisch eines ergänzt. Sie können auch HTML mit eingebetteten <?php ... ?>-Blöcken schreiben, genau wie in einer .php-Datei auf einem Webserver.
Kann ich mich mit MySQL verbinden?
Nein. Der Interpreter läuft in Ihrem Browser ohne Netzwerkzugriff oder Datenbankserver. Zum Üben von SQL bietet Ihnen der SQL-Compiler eine echte SQLite-Datenbank im Browser.
Warum funktionieren curl oder file_get_contents() mit einer URL nicht?
Netzwerk-Erweiterungen sind in diesem WebAssembly-Build nicht enthalten, und Browser erlauben aus einer Sandbox wie dieser keine rohen Netzwerkverbindungen.
Ist das dasselbe, wie PHP auf einem Server auszuführen?
Bei Sprachfunktionen sowie String-, Array- und JSON-Funktionen ja: Es ist die echte PHP-Engine. Alles, was von einem Webserver, Erweiterungen oder dem Netzwerk abhängt, verhält sich anders.
Aktualisiert