PHPでコマンドライン引数を渡して、プログラムで受け取る方法について書いています。
コマンドライン引数を渡すには、実行ファイルの後に半角スペースを書いて、渡したい引数を並べます。
コマンドライン引数を受け取るときには、プログラムで$argv
変数を使います。
引数の個数は$argc
変数を参照するとわかります。
載せているコードはPHPのバージョンの8.1.12で動作を確認しています。
それでは、確認していきましょう。
コマンドライン引数を渡す
コマンドライン引数を渡すときには、PHPの実行ファイルパスを書いた後に渡したい引数を並べます。
例えば、下記のように引数を渡すことができます。
$ php commandArgs.php apple grape orange
ファイル名のcommandArgs.php
の後に、引数として「apple
」・「grape
」・「orange
」を渡しました。
コマンドライン引数を受け取る
コマンドライン引数を受け取るときには、$argv
変数を使うことで受け取れます。
コマンドラインからプログラムが実行されると、$argv
変数には実行時に渡された引数が配列になって入ってきます。
例えば、下記のように$argv
変数を参照すると渡された値が入っていることが確認できます。
<?php
var_dump($argv);
var_dump関数で、$argv
変数の中身を確認してみました。
下記のように、コマンドラインから引数を渡して、プログラムを実行します。
$ php commandArgs.php apple banana peach
そうすると、このように配列に渡された引数が入っていることが確認できました。
array(4) {
[0]=>
string(15) "commandArgs.php"
[1]=>
string(5) "apple"
[2]=>
string(6) "banana"
[3]=>
string(5) "peach"
}
$argv
変数を確認すると、実行ファイルパスも含まれていて配列の0番目に入っていました。
それぞれの要素に、要素番号でアクセスすると取り出すことができます。
<?php
echo $argv[1]; // apple
echo $argv[2]; // banana
echo $argv[3]; // peach
コマンドライン引数の数を確認する
コマンドライン引数の数を知りたい場合には、$argc
変数を使うと良いです。
例えば、下記のように出力するようにします。
<?php
var_dump($argc);
var_dump関数で$argc
変数の中身を出力しました。
$argc
変数には実行ファイルパスを含んだ引数の数が入っています。
コマンドラインから引数を渡して、プログラムを実行します。
$ php commandArgs.php apple banana peach
出力内容を確認すると、下記のようにファイルパス(commandArgs.php
)を含んで、「4
」になっていることが確認できました。
int(4)
ファイルに渡した引数としては、「4
」からファイルパスを抜いた(-1
)数の3つですね。
コマンドライン引数には$argvと$argcを使おう
今回はPHPのコマンドライン引数について記載しました。
まとめると下記になります。
・PHPのコマンドライン引数を受け取るときには`$argv`変数を使う。(配列で入っている)
・PHPのコマンドライン引数の数は`$argc`変数を参照する。(数値型で入っている)
コメント