2009-07-07 117 views
2

是否有交互使用php命令行的任何howtos?我发现了很多关于运行在文本文件中sripts,但不是真正的与提示的壳,我在命令中输入:如何交互使用php命令行?

$ php -a 
Interactive shell 

php > echo "hello world"; 
hello world 
php > $a = 1; 
php > echo $a; 
1 
php > exit; 
$ 

当我去到Linux shell并运行php -a我得到的PHP贝壳。我可以加载生活在文件中的类吗?这里有什么规则?

+0

Phpsh交互式演练在这里:http://stackoverflow.com/a/20451380/445131 – 2014-06-02 18:43:03

回答

3

规则与普通的PHP脚本没有什么不同 - 就像把它从一个非常慢的磁盘上读取一样......唯一真正的区别是它不能提前读取,所以你必须定义函数在你使用它们之前。

您可以使用include或require作为正常的加载类。

1

我相信你可以使用include。您可以包含与您调用该命令的位置相关的文件。

1

还有另外一个微小的差别,如果你依靠的PHP类自动加载行为,可能是有问题的:

注意:如果使用PHP的CLI交互模式 自动加载不可用。

来源:Using PHP from the command lineAutoloading Objects

+0

自动加载似乎在CLI交互模式下正常工作。 – dave1010 2011-07-19 13:02:52

2

PHP的交互模式是比较有限。您可能会发现phpsh更有用。

5

说明在Ubuntu 10.04 Server版本中安装phpsh。

获取phpsh源,并提取

wget http://github.com/facebook/phpsh/zipball/master 

    sudo apt-get install unzip 

    mkdir temp 

    mv facebook-phpsh-8438f3f.zip temp 

    cd temp 

    unzip facebook-phpsh-8438f3f.zip 

phpsh使用Python,安装依赖

sudo apt-get install python-setuptools 

    sudo apt-get install linux-headers-$(uname -r) 

    sudo apt-get install build-essential 

    sudo apt-get install python-dev 

    sudo apt-get install sqlite3 libsqlite3-dev 

    sudo easy_install pysqlite 

    sudo apt-get install libncurses5-dev 

    sudo easy_install readline 

设置phpsh,运行和看到的作品

sudo python setup.py install 

    phpsh 

    $a = array("a"=>1,"b"=>2); 

    print_r($a) 
0

使用Boris

Python有一个。 Ruby有一个。 Clojure有一个。现在PHP也有一个。 Boris是PHP缺少的REPL(read-eval-print loop),允许 开发人员以 交互方式在终端上试验PHP代码。如果你犯了一个错误,没关系,鲍里斯 将报告错误,并为进一步的输入而关注。