[PHP] コマンドラインオプションを取得する

-a-b のようなハイフン 1 つから始まるコマンドラインオプションを取得する場合、getopt 関数に下記のように引数を渡します。

<?php

$options = getopt('a:b:');
var_dump($options);

このスクリプトのファイル名を sample.php としたときに、php sample.php -a hoge -b moge を実行すると、実行結果は下記となります。

array(2) {
  ["a"]=>
  string(4) "hoge"
  ["b"]=>
  string(4) "moge"
}

--alpha--beta のようなハイフン 2 つから始まるコマンドラインオプションを取得する場合は、第 2 引数に下記のように値を渡します。第 1 引数は使用しないため、null を渡しています。また、第 1 引数と異なり、第 2 引数は配列を渡します。

<?php

$options = getopt(null, ['alpha:', 'beta:']);
var_dump($options);

このスクリプトのファイル名を sample.php としたときに、php sample.php -alpha hoge -beta moge を実行すると、実行結果は下記となります。

array(2) {
  ["alpha"]=>
  string(4) "hoge"
  ["beta"]=>
  string(4) "moge"
}