Interaktivt skal
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
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.