你怎么调用php -B(--process-begin)?

时间:2014-04-07 18:34:21

标签: php

在命令行上,php可以从STDIN读取代码并执行它:

$ echo '<?php echo "Executing stdin\n";' | php                                              
Executing stdin

我想传入一个可供STDIN代码使用的变量。我注意到-B option似乎是一种方法:

  

-B --process-begin |在处理stdin之前执行的PHP代码。在PHP 5中添加。

当我尝试时,没有任何回应:

$ echo '<?php echo "Executing stdin with passed variable: $foo\n";' |
    php -B '$foo = "some value";'

实际上,传递-B似乎打破了代码,因为这没有做任何事情:

$ echo '<?php echo "Executing stdin\n";' | php -B ''

如何使用-B选项?我有没有机会让它做我想做的事?

编辑 - 2014/4/9更新

我只能假设PHP文档中的“在处理stdin之前”部分是不正确的。应该阅读 - 据我所知 - “在运行使用-R或-F传递的代码之前执行的PHP代码”。有关更多背景信息,请参阅腾讯的答案。

1 个答案:

答案 0 :(得分:1)

-B标志是在运行-R。

定义的主代码之前运行的开始代码

命令行帮助显示:

 php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...]

正如您所看到的,在此用例中-R标志不是可选的。

要传递参数,只需将它们放在args参数中。

 php [options] -r <code> [--] [args...]