互動式 Shell 和互動模式並非相同,儘管名稱和功能相似。
如果您輸入 `php -a` 後,看到 `Interactive Shell` 的回應,接著出現 `php>` 提示符號,表示您具備交互式 Shell 功能(PHP 編譯時包含了 readline 支援)。反之,如果您看到的回應是 `Interactive mode enabled`,則表示您**沒有**交互式 Shell 功能,本文內容對您不適用。
您也可以檢查 `php -m` 的輸出,看看是否有列出 readline;如果沒有,就表示您沒有交互式 Shell。
交互模式基本上就像使用標準輸入 (stdin) 作為檔案輸入來執行 PHP。您只需輸入程式碼,完成後(按下 Ctrl-D),PHP 就會執行您輸入的內容,如同執行一般的 PHP (PHTML) 檔案一樣;因此,您需要以 `<?php` 開頭,才能在交互模式中執行程式碼。
交互式 Shell 會在您輸入完成每個表達式時(以 `;` 或 `}` 結尾)立即進行評估,並在不終止執行的情況下回報錯誤,同時透過 readline 支援標準 Shell 功能(例如:歷史紀錄、Tab 鍵自動完成等)。它是交互模式的增強版本,**僅**在您具備必要的函式庫時才可用,並且是一個真正的 PHP Shell,會將您輸入的所有內容都解讀為 PHP 程式碼;使用 `<?php` 會造成語法錯誤。
最後,如果您使用的是 Windows 系統,那您可能就沒轍了。從我看到的其他評論來看,Windows 系統上沒有 readline,而沒有 readline 就沒有交互式 Shell。