Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

PHP | getopt

概要

getopt ( string $options [, array $longopts ] )

詳細

getopt はコマンドライン引数のリストからオプションを取得します。

$optionsmの指定は、

  • 単一文字 => 値を受け付けない
  • 単一文字+コロン1個 => 値を受け付け、必須
  • 単一文字+コロン2個 => 値を受け付け、オプション

詳細はサンプルにて。

サンプル

#!/usr/bin/env php
<?php
$options = getopt("a:b::c");
print_r($options);
foreach (array('a', 'b', 'c') as $key) {
  print_r($key.' exists? = '.array_key_exists($key, $options)."\n");
}

出力

全て値を指定した場合

c だけ値が読み捨てられました

$ php ./get_opts.php -a=1 -b=2 -c=3
Array
(
    [a] => 1
    [b] => 2
    [c] => 
)
a exists? = 1
b exists? = 1
c exists? = 1
全て値を省略した場合

bオプションがaの値として設定されてしまいました

dsd@dsd:~/work/php$ php ./get_opts.php -a -b -c
Array
(
    [a] => -b
    [c] => 
)
a exists? = 1
b exists? = 
c exists? = 1