假如你在命令行下使用过php, 那么你可能知道用-r选项来执行代码. 这个特征非常棒, 但是很难正确处理"引用". 你需要知道是"单引"或"双引",还有你所使用的shell, 甚至你需要时刻保持对变量的警惕避免出错. 直接在STDIN中写入代码让php执行是件烦人的事情, 假设你想修改前面已写的代码的话. 在这种情况下,你只好把代码写入文件(即使那只有一行 + <?php)运行它. 为了解决这个问题, Marcus和我在php 5.1 cli sapi中加入了新的特征. 我很荣幸能够在这里介绍给大家: PHP交互控制台.
在你编译了PHP(GNU: --with-readline)或者(BSD: --with-libedit)后,你便能够通过使用PHP的-a选项进入这个控制台.
$ php -a
Interactive mode enabled
php >
你可以在这里输入些代码,然后得到反馈. 提示符会根据上下文而改变:
php > $a = 1;
php > $b = 2;
php > echo $a + $b;
3
php > function foo() {
php { echo "foo
php " bar";
php { }
php > foo();
foo
bar
php >
但是这并非是我们全部拥有的. 更酷的特征是tab自动完成功能. 就象bash或者mysql控制台下你可以只输入前面几个字母,按下tab便获得可能的完成的单词列表. 目前,我们已经能够做到函数, 常量, 类名, 变量, 静态方法调用和类常量的自动完成. 目前我在进行对象方法和属性的自动完成工作.
目前自动完成尚有一些限制, 比如对于变量或对象, 它只能在先前行定义并执行后才会自动完成, 并不能在单行多次使用或在一个函数内很好地工作. 但是大多数情况下,它能避免我们打印很多字母.
请随意测试, 并给我们反馈意见.
--johannes
偶的php版本是5.0, 使用-a选项似乎和介绍有点不同.
则这里需要<?php开始.
[yarco@China x]$ php -a
Interactive mode enabled
<?php
print PHP_OS;
Linux
print_r($_POST);
Array
(
)
[yarco@China x]$ php -v
PHP 5.0.4 (cli) (built: May 9 2005 11:21:11)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.4-dev, Copyright (c) 1998-2004 Zend Technologies
[yarco@China x]$