如何以交互方式使用PHP命令行?

时间:2009-07-07 09:25:36

标签: php shell

有没有以交互方式使用PHP命令行的方法?

我发现了很多关于运行文本文件中的脚本的问题,但是我并没有真正关于带有我输入命令的提示符的shell:

$ php -a
Interactive shell

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

当我转到Linux shell并运行php -a时,我得到了PHP shell。我可以加载存在于文件中的类吗?这里的规则是什么?

6 个答案:

答案 0 :(得分:5)

在Ubuntu 10.04服务器版中安装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)

答案 1 :(得分:3)

规则与普通的PHP脚本没有任何区别 - 只是把它想象成从一个非常慢的磁盘读取......唯一真正的区别是它无法提前读取,所以你必须先定义函数你使用它们。

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

答案 2 :(得分:2)

php的交互模式有些限制。您可能会发现phpsh更有用。

答案 3 :(得分:1)

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

答案 4 :(得分:1)

如果您依赖PHP的类自动加载行为,还有一个小问题可能会有问题:

  

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

来源:Using PHP from the command lineAutoloading Objects

答案 5 :(得分:0)

使用Boris

  

Python有一个。 Ruby有一个。 Clojure有一个。现在PHP也有一个。   Boris是PHP缺少的REPL(读取 - 评估 - 打印循环),允许   开发人员在终端中试验PHP代码   互动方式。如果你犯了一个错误,那没关系,鲍里斯   将报告错误并引起注意以获得进一步的输入。