PHP CLI能否在终端窗口中立即返回结果?

PHP CLI能否在终端窗口中立即返回结果?,php,command-line-interface,Php,Command Line Interface,我试图理解php cli应该如何工作。您是否必须以脚本的形式运行所有内容,如: 文件名:helloworld.php <?php print "Hello World!"; ?> 或者有没有办法让它像python那样进行交互 我尝试使用-a选项,但仍然没有得到任何结果。我不会说Python,但我想您正在寻找一个交互式控制台,例如,在许多JavaScript平台中都可以找到的控制台,如Node: C:\>node > var x=2, y=3; undefined >

我试图理解php cli应该如何工作。您是否必须以脚本的形式运行所有内容,如:

文件名:helloworld.php

<?php
print "Hello World!";
?>
或者有没有办法让它像python那样进行交互


我尝试使用
-a
选项,但仍然没有得到任何结果。

我不会说Python,但我想您正在寻找一个交互式控制台,例如,在许多JavaScript平台中都可以找到的控制台,如Node:

C:\>node
> var x=2, y=3;
undefined
> console.log(x*y);
6
undefined
>
据我所知,PHP没有这样的功能。PHP解释器需要解析完整的脚本,然后才能执行它

有一种交互模式,但它需要一个代码块,而不是控制台:

C:\>php -a
Interactive mode enabled

C:\>php -a
Interactive mode enabled

<?php
$x=2;
$y=3;
^Z

C:\>php -a
Interactive mode enabled

<?php
echo $x*$y;
^Z

Notice: Undefined variable: y in - on line 2

Call Stack:
    7.7505     355096   1. {main}() -:0


Notice: Undefined variable: x in - on line 2

Call Stack:
    7.7505     355096   1. {main}() -:0

0
C:\>

不要忘记shell转义规则。

是的。如果设置路径,php helloworld.php就足够了。你犯了什么错误?我想这样做,但没有找到,所以我制作了自己的console.class.php,它模拟了一个php控制台:)1)如果您将php脚本作为参数传递给php解释器,则它们不需要是可执行的2)交互模式需要您的EOF信号(如果我没有记错的话,在Unix上是Ctrl+D),但不会逐行运行。您是说与用户交互?例如,等待用户输入?我希望能够输入
true==false
并查看结果。我已启用了
交互模式
,但输入
将运行
chmod+x
,因此您必须使用一些Unix。我相信你的捷径是
Ctrl+D
Ctrl+Z
发送到后台)。是的
ctrl-d
-“结束许多UNIX程序的文本输入”。它仍然没有输出与
调用堆栈
注意
相同的有用输出。引用未定义的变量只会给出
0
。通过
print\r(get\u defined\u vars())
确认未定义。常规错误报告指令仍然适用。我还安装了Xdebug.Yes。我注意到错误出现在我的日志中。看起来也是时候安装Xdebug了。再次感谢你,伙计。
C:\>php -a
Interactive mode enabled

C:\>php -a
Interactive mode enabled

<?php
$x=2;
$y=3;
^Z

C:\>php -a
Interactive mode enabled

<?php
echo $x*$y;
^Z

Notice: Undefined variable: y in - on line 2

Call Stack:
    7.7505     355096   1. {main}() -:0


Notice: Undefined variable: x in - on line 2

Call Stack:
    7.7505     355096   1. {main}() -:0

0
C:\>
C:\>php -r "var_dump(true == false);"
bool(false)