Command line usage
PHP Manual

Shell interattiva

Dal PHP 5.1.0, la CLI SAPI fornisce una shell interattiva quando si usa l'opzione -a se PHP è compilato con l'opzione --with-readline .

Utilizzando la shell interattiva si può digitare codice PHP ed eseguirlo direttamente.

Example #1 Esecuzione di codice con la shell interattiva

$ 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 >

La shell interattiva fornisce anche il completamento automatic (tab completion) di funzioni, costanti, nomi di classe, variabili, metodi statici e costanti di classe.

Example #2 Tab completion

Premere il tasto Tab due volte quando ci sono molteplici possibilità di completamento visualizzerà un elenco di questi elementi:

php > strp[TAB][TAB]
strpbrk   strpos    strptime  
php > strp

Quando esiste un solo completamento possibile, una pressione sul tasto tab completa il resto della linea:

php > strpt[TAB]ime(

Il completamento funziona anche per il nomi che sono stati definiti durante la sessione corrente della shell:

php > $fooThisIsAReallyLongVariableName = 42;
php > $foo[TAB]ThisIsAReallyLongVariableName

La shell interattiva archiva lo storico che può essere consultato usando i tasti su e giù. Lo storico è salvato nel file ~/.php_history.

Da PHP 5.4.0, la CLI SAPI mette a disposizione le impostazioni php.ini cli.pager e cli.prompt. Il valore cli.pager permette ad un programma esterno (come less) di agire come un paginatore per l'output invece di visualizzarlo direttamente sullo schermo. Il parametro cli.prompt permette di cambiare il prompt php >.

In PHP 5.4.0 è stato reso possibile modificare le impostazioni di php.ini

Example #3 Impostare i valori del php.ini nella shell interattiva

Il parametro cli.prompt:

php > #cli.prompt=hello world :> 
hello world :>

Utilizzando gli apici inversi è possibile eseguire codice PHP nel 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 >

Impostazione del paginatore a less:

php > #cli.pager=less
php > phpinfo();
(output displayed in less)
php >

Il parametro cli.prompt ammette alcune sequenze di escape:

Sequenze di escape di cli.prompt
Sequenza Descriztione
\e Usata per aggiungere colori al prompt. Un esempio può essere \e[032m\v \e[031m\b \e[34m\> \e[0m
\v La versione del PHP.
\b Indica in che tipo di blocco si trova PHP. Per esempio /* indica che si è in un commento multilinea. L'ambito esterno è indicato da php.
\> Indica il caratter di prompt. L'impostazione predefinita è >, ma cambia quando la shell è all'interno di un blocco non terminato o una stringa. I caratteri utilizzabili sono: ' " { ( >

Nota:

I file inclusi con auto_prepend_file e auto_append_file sono analizzati in questa modialità ma con qualche restrizione - es. le funzioni devono essere definite prima della chiamata.

Nota:

L'Autoloading non è disponibile usando PHP in modalità interattiva CLI.


Command line usage
PHP Manual