PHP интерактивная оболочка, авто эхо и новая строка

Приветствую коллег программистов!

Есть ли способ получить интерактивную оболочку PHPs, php -a, вести себя как консоль Rails или консоль в Chrome? Я просмотрел флаги для команды php, но без кубиков.

Что я получаю:

php > $a = 0;
php > $a;
php > echo $a;
0php > 

Что я хочу

php > $a = 0;
0
php > $a;
0
php > echo $a;
0
php > 

3 ответа

У вас есть как минимум три возможности решить эту проблему:

  1. Добавить вручную PHP_EOL всем вашим echo: echo $a . PHP_EOL;
  2. Представьте свою идею на официальной вики-странице php ideas и подождите, пока кто-нибудь ее не осуществит.
  3. Изучите рабочий процесс php git для внешних участников, создайте необходимую функциональность и отправьте патч разработчикам.

По состоянию на 2022 год PsySH кажется современным поддерживаемым действительным решением заданного вопроса:

      Psy Shell v0.11.5 (PHP 7.4.3 — cli) by Justin Hileman
>>> $a = 0
=> 0

>>> $a
=> 0

>>> echo $a
0⏎

Все больше:

  • как видно выше, точка с запятой необязательна
  • выход немного отличается дляechoвыражение
  • одинevalоператора, отброшенного в любом месте базы кода, достаточно, чтобы установить точку останова, основанную на этом REPL.

Проверьте Борис, описанный как "отсутствующий REPL PHP". echo а также print по-прежнему требуются переводы строк вручную, но обнаженные выражения оцениваются и печатаются:

[1] boris> $a = 0;
// 0
[2] boris> $a;
// 0
[3] boris> echo $a;
0[4] boris>
Другие вопросы по тегам