PHPをCLIで実行する方法
PHPはWebサーバー経由だけでなく、CLI(Command Line Interface)上でも実行可能です。CLIとはキーボードのみで画面操作を行うシステムのことを指します。コマンドラインと呼ぶこともあります。
関数の戻り値をササッと確認したい時や、ちょっとしたコードを試したい時に便利です。
コマンドラインでPHPを実行するにはphpコマンドにパスが通っている必要があります。パスの通し方は下記の記事を参考にしてください。
筆者の開発環境
PC:Apple M1 チップ搭載MacBook Air
OS:macOS Ventura 13.6
PHP:8.2.0
特定のファイルを実行する場合
下記のようにファイル名を指定してPHPコマンドを実行することができます。
php -f /path/to/test.php
「-f」スイッチはなくてもかまいません。
php /path/to/test.php
試してみましょう。ターミナルを起動してください。下記のコマンドを実行し新しくファイルを作成してください。
touch test.php
vimで編集しましょう。
vim test.php
「i」(小文字のアイ)を入力し、insertモードにしてください。下記のコードを入力してください。
<?php
echo 'Hello World';
入力が完了したらescキーを押して「:wq」と入力し保存して閉じてください。下記のコマンドを実行し「Hello World」と出力されるか確認してください。
php test.php
改行は「PHP_EOL」を使用します。もう一度vimでtest.phpを開いてください。
vim test.php
「i」(小文字のアイ)を入力し、insertモードにしてください。下記のようにコードを修正してください。
<?php
echo 'Hello World' . PHP_EOL;
echo 'Good Bye' . PHP_EOL;
入力が完了したらescキーを押して「:wq」と入力し保存して閉じてください。下記のコマンドを実行し、
Hello World
Good Bye
と出力されるか確認してください。
コマンドラインで直接指定する場合
本当に短いコードであれば、下記のようにコマンドライン上で直接実行することも可能です。下記のコートでは256が出力されます。
php -r 'echo 16 ** 2;'
コマンドライン引数
コマンドライン上で実行されるPHPに引数を渡すこともできます。下記のようにファイル名の後に「半角スペース」で区切って文字列を入力してください。
php test.php 1 10
試してみましょう。まず、下記のコマンドを実行し、test.phpの中身をクリアしてください。
echo '' > test.php
vimでtest.phpを開いてください。「i」(小文字のアイ)を入力し、insertモードにしてください。下記のコードを入力してください。引数1から引数2までの数字を合計します。
<?php
if ($argc !== 3) {
echo '引数は2つ必要です。';
exit;
}
echo array_reduce(range($argv[1], $argv[2]), function ($c, $i) {
$c += $i;
return $c;
});
$argcには引数の数が代入されています。なぜ「3」かというと、入力された引数は$argvの中に入っていますが、1つめの要素に実行されたファイル名が入っていて、それも含んだ数だからです。今回の場合はtest.phpが入っています。
$argv[1]には「1」が、$argv[2]には「10」が、それぞれ入っていますので、range関数の引数にそれぞれを渡しています。
入力が完了したらescキーを押して「:wq」と入力し保存して閉じてください。
実行してみましょう。55と表示されます。
php test.php 1 10
直接指定でも変数を渡すことが可能です。
php -r 'echo $argv[1] + $argv[2];' 1 2
ちなみに直接指定の場合$argv[0]にはファイル名の代わりに「Standard input code」と入っています。
解説は以上です。おつかれさまでした。
PHP/Laravelのシステム開発は株式会社パパグラムへぜひご相談ください。
この記事が気に入ったらサポートをしてみませんか?