ITHACK
~ みんなのIT部門 ~

【PHP】コマンドライン引数 – コマンドライン実行時に値を与える

コマンドラインからプログラム実行するときに値を与えることができます。

ここでは初心者向けにコマンドライン引数について解説します。

  • コマンドライン引数

コマンドライン引数とは

コマンドラインからプログラム実行するときに値を与えることができます。
その値を引数(パラメーター)と言い、コマンドラインから与えるため、コマンドライン引数と呼ばれます。

コマンドライン引数の使い方

コマンドライン引数を使うには次の2点を対応する必要があります。

  • プログラム実行時にコマンドライン引数を与える
  • プログラムでコマンドライン引数を取得する

プログラム実行時

コマンドライン引数を与えるにはプログラム実行時にphpコマンドに後述します。

$ php ソースコードファイル コマンドライン引数

もし、複数の値を与えたい場合は、スペースで区切ります。

プログラムで受け取る

コマンドライン引数をプログラムで取得するには次のように記述します。

$変数名 = $argv[キー];

$argvはコマンドライン引数の値を記憶する初めから用意されている変数です。
キー(インデックスとも呼ぶ)の部分に取得したいコマンドライン引数の番号を記述します。

また、$argvは配列型(array)と呼ばれる型になります。
配列型については説明を割愛しますが、ここでは$argv[キー]と記述すると、コマンドライン引数を受け取れることを覚えておきましょう。

サンプルコード

コマンドライン引数のサンプルコードをご覧ください。

<?php

$text1 = $argv[1];
$text2 = $argv[2];

echo $text1.' '.$text2."\n";

?>
$ php sample.php Hello World
Hello World

コマンドラインでsample.phpを実行する時に、コマンドライン引数としてHelloとWorldを与えています。
ソースコードでは$argv[]を使って、$argv[1]でHelloを、$argv[2]でWorldを取得し、変数に代入しています。
実行結果から正常に値を取得できていることが分かります。

また、補足ですが、$argv[0]とすることで、ソースコードのファイル名を取得することができます。

演習問題

問題1

次の実行結果になるプログラムを作成してください。
なお、下記の条件を満たすものとします。

  • 実行結果の文字列はコマンドライン引数の値を使用
$ php practice.php Good Morning
Good Morning

問題2

次の実行結果になるプログラムを作成してください。
なお、下記の条件を満たすものとします。

  • 実行結果の文字列はコマンドライン引数の値を使用
$ php practice.php Have a good night!
Have a good night!

まとめ

コマンドライン引数はプログラム実行時に値を与える方法です。
学習において使うことが多いので覚えていきましょう。