対話型phpを使う(インタラクティブシェルとインタラクティブモード)
久々にphpの記事を。
いや、さわってるのは、最近どころか明日明後日までずっとphpなんですがね。
と思って調べたらあったので、メモ。
phpで対話シェル
PHP 5.1.0 以降では、--with-readline オプションつきで PHP をコンパイルした場合に CLI SAPI で対話シェルが使えるようになりました。 対話シェルは、-a オプションで使うことができます。
というわけで、実際にターミナルに打ち込んでみたら出来たので非常に感動しています。
だけど、実はこのmacの諸言語の設定は自分でやったわけではないので(だめプログラマだ)、自分でインストールしたインターン先のphpは-aオプションをつけても、
Interactive shell
php > echo "Hello World!\n";
Hello World!
php >
という風にはなってくれません。
こういう風になります。
Interactive mode enabled
//何も表示されない!
PHP対話型シェルをWindowsで使う - 農業をITから考える頁
ここと同じことだと思うのですが、
インターン先の環境はmacなので、自分の場合は--with-readlineのオプション(たぶんこちらだけど、検証のために再インストールしたくない)が入ってないせいかと思われます。
では、こちらはどうやって使うのか。
phpで対話モード
もったいぶりましたが、
Interactive mode enabled
<?php
echo "Hello World\n";
?>
//win -> ctrl + z を押す。 mac -> ctrl + dを押す
//macでctrl + z を押すと終了する
Hello World
という風にファイルの中に書くときとおなじく<?php ... ?>で囲って書いてから、実行コマンドを押すだけです。
ちょっとだけめんどくさいので、それだけで実行ファイルをphp exe.phpみたいに実行するのとどちらが楽か迷ったけれど、一応対話的には使えるみたいです。
シェルが使えるかどうかの判別には
php -m
と入力して出てくるコマンド?の一覧にreadlineが入っていたらシェルモードが使えます。
phpを入れ直すか、apacheの設定を直すかしたら使えそうなのですが、
phpの入れ直しは先々週苦戦したばかりだし、
もう少しパスを通すとかその辺の話に慣れてからにします。