php -a
ターミナルでコマンドを使用して PHP の対話型シェルを使用していますが、コマンドが機能していません。シンプルな を試してみても2 * 2
、結果が得られません。
私は何を間違っていますか、それはどのように機能しますか?
インタラクティブシェルのドキュメントでは、 Ryan P. による最初のメモにいくつかの重要な情報があります。
インタラクティブ シェルとインタラクティブ モードは、名前と機能が似ていますが、同じものではありません。
php -a
「Interactive Shell」と入力して応答があり、その後にプロンプトが表示されたphp>
場合は、対話型シェルを使用できます (PHP は readline サポート付きでコンパイルされています)。代わりに「インタラクティブ モードが有効になっています」という応答が返された場合は、インタラクティブ シェルを使用できないため、この記事は適用されません。
したがって、「インタラクティブモードが有効」になっている場合は、PHPコードを入力することしかできず、完了したらPHPにEOFを送信して実行できます。
これはおそらくあなたが望むものではありません。代わりにphpshを調べることをお勧めします。
でコンパイルされた PHP 5.1.0 はあり--with-readline
ますか?
PHP 5.1.0 以降、PHP が --with-readline オプションでコンパイルされている場合、CLI SAPI は -a オプションを使用して対話型シェルを提供します。
PHPマニュアルページの例:
$ php -a
インタラクティブシェル
php > エコー 5 + 8;
13
詳細: http://www.php.net/manual/en/features.commandline.interactive.php
print() または echo() を使用していますか? 2*2 の例は実行されますが、PHP に print() のような出力で何かを行うように指示するまで、その証拠は表示されません。
php -a
php > 2 * 2; #This doesn't return anything.
php > print (2 * 2);
4