The CLI SAPI provides an interactive shell using the -a option if PHP is compiled with the --with-readline option.
Using the interactive shell you are able to type PHP code and have it executed directly.
示例 #1 Executing code using the interactive 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 >
The interactive shell also features tab completion for functions, constants, class names, variables, static method calls and class constants.
示例 #2 Tab completion
Pressing the tab key twice when there are multiple possible completions will result in a list of these completions:
php > strp[TAB][TAB] strpbrk strpos strptime php > strp
When there is only one possible completion, pressing tab once will complete the rest on the same line:
php > strpt[TAB]ime(
Completion will also work for names that have been defined during the current interactive shell session:
php > $fooThisIsAReallyLongVariableName = 42; php > $foo[TAB]ThisIsAReallyLongVariableName
The interactive shell stores your history which can be accessed using the up and down keys. The history is saved in the ~/.php_history file.
The CLI SAPI provides
the php.ini settings cli.pager
and
cli.prompt
. The cli.pager
setting allows an external program (such as less) to
act as a pager for the output instead of being displayed directly on the
screen. The cli.prompt
setting makes it possible to
change the php >
prompt.
It is also possible to set php.ini settings in the interactive shell using a shorthand notation.
示例 #3 Setting php.ini settings in the interactive shell
The cli.prompt
setting:
php > #cli.prompt=hello world :> hello world :>
Using backticks it is possible to have PHP code executed in the prompt:
php > #cli.prompt=`echo date('H:i:s');` php > 15:49:35 php > echo 'hi'; hi 15:49:43 php > sleep(2); 15:49:45 php >
Setting the pager to less:
php > #cli.pager=less php > phpinfo(); (output displayed in less) php >
The cli.prompt
setting supports a few escape
sequences:
Sequence | Description |
---|---|
\e |
Used for adding colors to the prompt. An example could be
\e[032m\v \e[031m\b \e[34m\> \e[0m
|
\v |
The PHP version. |
\b |
Indicates which block PHP is in. For instance /* to
indicate being inside a multi-line comment. The outer scope is denoted by
php .
|
\> |
Indicates the prompt character. By default this is
> , but changes when the shell is inside an
unterminated block or string. Possible characters are: ' " {
( >
|
注意:
Files included through auto_prepend_file and auto_append_file are parsed in this mode but with some restrictions - e.g. functions have to be defined before called.
注意:
Autoloading is not available if using PHP in CLI interactive mode.