Как пользоваться онлайн-компилятором PHP
- Напишите или вставьте скрипт на PHP в редактор. Открывающий тег
<?phpнеобязателен: если в коде вообще нет PHP-тегов, он добавляется автоматически. Шаблоны, где HTML смешан с блоками<?php ... ?>, тоже работают. Кнопка Сбросить пример возвращает стартовый код. - Нажмите Запустить или используйте Ctrl + Enter (⌘ + Enter на Mac).
- Всё, что скрипт выводит через
echo,print,printfилиvar_dump, появляется на панели Результат. Предупреждения и критические ошибки подсвечиваются. - Выберите Ограничение времени: 5, 15 или 60 секунд. Скрипты, которые работают дольше, останавливаются автоматически, а кнопка Остановить немедленно завершает запуск.
При первом запуске загружается интерпретатор PHP, около 12 МБ. Браузер кэширует его, поэтому последующие запуски стартуют намного быстрее. Чтобы сохранить скрипт, используйте Копировать или main.php.
PHP работает локально внутри вашего браузера, поэтому ваш код никогда не отправляется на наши серверы и не хранится на них. Редактор запоминает последний скрипт в локальном хранилище вашего браузера и больше нигде.
Что поддерживается
Компилятор использует PHP 8 через php-wasm — интерпретатор PHP, скомпилированный в WebAssembly. Это не имитация: ваш код выполняет сам PHP.
- Синтаксис PHP 8: типизированные свойства, объединённые типы, выражения
match, именованные аргументы, стрелочные функции (fn), оператор nullsafe (?->) и перечисления, если их поддерживает встроенная версия. - Базовые функции для строк (
str_contains,sprintf,explode), массивов (array_map,usort,array_filter), математики и дат. - JSON через
json_encodeиjson_decode. - Регулярные выражения через функции
preg_*. - Классы, интерфейсы, трейты, замыкания, генераторы и исключения.
Ограничения:
- Нет сетевых расширений:
curl, сокеты и HTTP-запросы недоступны. - Нет сервера баз данных: подключаться к MySQL или PostgreSQL не к чему. Чтобы потренироваться в SQL, воспользуйтесь онлайн-компилятором SQL.
- Нет контекста веб-сервера:
$_GET,$_POST, сессии и cookie не получают реальных данных запроса, а вывод HTML показывается как текст, а не отображается. - Нет пакетов Composer и нет стандартного ввода.
Краткий справочник по 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";
| Задача | Синтаксис |
|---|---|
| Переменная | $name = "Ada"; |
| Подстановка в строку | "Hello, {$name}!" |
| Ассоциативный массив | $a = ['key' => 'value']; |
| Цикл по ключам и значениям | foreach ($a as $k => $v) { } |
| Просмотр значения | var_dump($x); или print_r($x); |
| Оператор объединения с null | $v = $a['x'] ?? 'default'; |
Советы
- Завершайте строки символом
"\n"илиPHP_EOL:echoсам перевод строки не добавляет. - Используйте
print_r($array)для компактного вывода вложенных массивов илиvar_dump(), когда нужны ещё и типы с длинами. - Для читаемого JSON передайте
JSON_PRETTY_PRINTили вставьте вывод в инструмент Форматирование и валидация JSON, чтобы проверить его. - Каждый запуск начинается со свежего интерпретатора, поэтому переменные и функции из предыдущего запуска не сохраняются.
preg_match? Сначала составьте и отладьте его в тестере регулярных выражений, а затем вставьте между разделителями, например '/^\d+$/'.Частые вопросы
Нужно ли начинать код с <?php?
Нет. Если в скрипте нет тега <?php, он добавляется автоматически. Можно также писать HTML со встроенными блоками <?php ... ?>, точно как в файле .php на веб-сервере.
Можно ли подключиться к MySQL?
Нет. Интерпретатор работает в вашем браузере без доступа к сети и сервера баз данных. Для практики в SQL онлайн-компилятор SQL даёт настоящую базу данных SQLite прямо в браузере.
Почему не работают curl и file_get_contents() с URL?
Сетевые расширения не входят в эту сборку WebAssembly, а браузеры не разрешают прямые сетевые подключения из такой песочницы.
Работает ли это так же, как PHP на сервере?
Для возможностей языка, функций для строк, массивов и JSON — да: это настоящий движок PHP. Всё, что зависит от веб-сервера, расширений или сети, работает иначе.
Обновлено
Комментарии
Войдите, чтобы оценить этот инструмент.
Поделитесь советом, задайте вопрос или расскажите, как вам помог инструмент.
Комментариев пока нет. Расскажите первым, как всё прошло.