从 PHP 5.1.0 开始, CLI SAPI 提供了一个交互式命令行工具(Interactive shell), 这个交互式 PHP shell 是通过使用 - with-readline 编译选项集成到 PHP 内核里的. 使用这个交互式 shell, 你可以直接在命令行窗口里输入 PHP 并直接获得输出结果.
开启 PHP 的交互式 shell 模式, 需要使用 - a 参数. 下面是使用交互式 shell 的一些例子.
- $ PHP -a
- Interactive shell
- PHP> echo 5+8;
- 13
- PHP> function addTwo($n)
- PHP> {
- PHP {
- return $n + 2;
- PHP {
- }
- PHP> var_dump(addtwo(2));
- int(4)
- PHP>
在交互式 shell 里, 你可以使用 tab 键对函数名, 内置变量, 类名, 静态方法等进行自动补全操作.
需要注意的是, Interactive Shell 和 Interactive Mode 并不是一个东西, 尽管名称和功能都很相似.
如果你输入 PHP -a, 得到的回应是'Interactive Shell'并跟随着'php>'提示符, 那你使用的就是交互式 shell. 如果你得到的回应是'Interactive mode enabled', 说明你的 PHP 并不支持交互式 shell, 上面介绍的用法也不实用于你.
但也不用担心, Interactive mode(交互模式)也可以在命令行窗口里执行 PHP 代码, 只是代码的执行方式有些区别. 在 PHP 交互模式 (Interactive mode) 里, 你在命令行窗口里输入 PHP 代码, 代码不会立即执行, 当你输入了所有 PHP 代码后, 输入 Ctrl-Z(Windows 里), 或输入 Ctrl-D(Linux 里), 你输入的所有代码将会一次执行完成并输出结果.
在 PHP 交互模式 (Interactive mode) 里, 跟交互式 shell 里不一样, 你的代码需要以<?PHP 开头, 跟你的普通 PHP 文件里的写法一致. 下面是在 Windows 里的使用例子.
- C:\>PHP -a
- Interactive mode enabled
- <?PHP
- echo "Hello, world!";
- ?>
- ^Z
- Hello, world!
在 Winidows 里, 没有交互式 shell, 只有 Interactive mode.
来源: http://www.webhek.com/post/php-interactive-shell.html