Interaktivt skal

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

Interaktivt skal

CLI SAPI tillhandahåller ett interaktivt skal med hjälp av flaggan `-a` om PHP är kompilerat med alternativet `--with-readline`. Från och med PHP 7.1.0 är det interaktiva skalet också tillgängligt på Windows, om readline-tillägget är aktiverat.

Genom att använda det interaktiva skalet kan du skriva PHP-kod och få den exekverad direkt.

Exempel #1 Exekvera kod med hjälp av det interaktiva skalet

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

Det interaktiva skalet har också stöd för tabbkomplettering av funktioner, konstanter, klassnamn, variabler, statiska metodanrop och klasskonstanter.

Exempel #2 Tabbkomplettering

Att trycka på tabb-tangenten två gånger när det finns flera möjliga kompletteringar resulterar i en lista över dessa:

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

När det bara finns en möjlig komplettering, kommer att trycka på tabb en gång att komplettera resten på samma rad:

php > strpt[TAB]ime(

Komplettering fungerar också för namn som har definierats under den aktuella interaktiva skal-sessionen:

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

Det interaktiva skalet lagrar din historik som kan nås med upp- och nedpilarna. Historiken sparas i filen `~/.php_history`.

CLI SAPI tillhandahåller php.ini-inställningarna `cli.pager` och `cli.prompt`. Inställningen `cli.pager` tillåter ett externt program (såsom less) att agera som en pager för utdata istället för att de visas direkt på skärmen. Inställningen `cli.prompt` gör det möjligt att ändra prompten `php >`.

Det är också möjligt att ställa in php.ini-inställningar i det interaktiva skalet med en kortfattad notation.

Exempel #3 Ställa in php.ini-inställningar i det interaktiva skalet

Inställningen `cli.prompt`:

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

Genom att använda backticks är det möjligt att få PHP-kod exekverad i prompten:

php > #cli.prompt=`echo date('H:i:s');` php > 
15:49:35 php > echo 'hej';
hej
15:49:43 php > sleep(2);
15:49:45 php >

Ställa in pager till less:

php > #cli.pager=less
php > phpinfo();
(utdata visas i less)
php >

Inställningen `cli.prompt` stöder några escape-sekvenser:

Escape-sekvenser för cli.prompt

Sekvens Beskrivning
\e Används för att lägga till färger till prompten. Ett exempel kan vara \e[032m\v \e[031m\b \e[34m\> \e[0m
\v PHP-versionen.
\b Indikerar vilket block PHP befinner sig i. Till exempel /* för att indikera att man är inne i en flerradig kommentar. Det yttre blocket betecknas med php.
\> Indikerar prompttecknet. Standard är >, men ändras när skalet är inne i ett oavslutat block eller sträng. Möjliga tecken är: ' " { ( >

Notera:

Filer inkluderade via `auto_prepend_file` och `auto_append_file` tolkas i detta läge men med vissa begränsningar – t.ex. måste funktioner definieras innan de anropas.

Interaktivt läge

Om readline-tillägget inte är tillgängligt, före PHP 8.1.0, ger anrop av CLI SAPI med flaggan `-a` det interaktiva läget. I detta läge förväntas ett komplett PHP-skript ges via STDIN, och efter avslutning med CTRL+d (POSIX) eller CTRL+z följt av ENTER (Windows) utvärderas detta skript. Detta är i princip samma sak som att anropa CLI SAPI utan flaggan `-a`.

Från och med PHP 8.1.0 misslyckas anrop av CLI SAPI med flaggan `-a` om readline-tillägget inte är tillgängligt.

Sidslut

Orginalhemsidan på Engelska :https://www.php.net/manual/en/features.commandline.interactive.php

PHP Funktioner


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp.se som har sponsrat Linux.se med webserver.