phpのgetopはcmdパラメータを受け取るときに使われます
例えば、linxuでphpを使ってデバッグする必要がある場合、パラメータを付けてデバッグする必要があることがよくあります
getoptはパラメータを渡したコマンドを実現できます
使用方式:
array getopt ( string $options [, array $longopts ] )
注意: $options字符串中的每个字符将被用来作为选项字符和对传递给脚本用一个连字符开始匹配选项( - )。例如,一个选项字符“x”对应一个选项-x。只有a - z,A - Z和0-9是允许的 空格是不能作为选项字符的。
注: コマンド ラインから実行するときに現在のスクリプトに渡されるパラメーターを含む配列。
注: この変数は、 register_argc_argv がオンになっている場合にのみ使用できます。
例 1: まず PHP 変数について理解する $argv
<?php var_dump($argv);?>
コマンドを使用します: php script.php arg1 arg2 arg3
次の内容が出力されます:
array(4) { [0]=> string(10) "script.php" [1]=> string(4) "arg1" [2]=> string(4) "arg2" [3]=> string(4) "arg3"}
例 2 : getopt の簡単な例
<?php $options = getopt("f:hp:"); var_dump($options);?>
コマンドを使用します: php script.php -f value -h または php script.php -fvalue -h
次の内容が出力されます:
array(2) { ["f"]=> string(5) "value" ["h"]=> bool(false)}
例3: getopt
<?php$shortopts = "";$shortopts .= "f:"; // Required value$shortopts .= "v::"; // Optional value$shortopts .= "abc"; // These options do not accept values$longopts = array( "required:", // Required value "optional::", // Optional value "option", // No value "opt", // No value);$options = getopt($shortopts, $longopts);var_dump($options);?>
array(6) { ["f"]=> string(11) "value for f" ["v"]=> bool(false) ["a"]=> bool(false) ["required"]=> string(5) "value" ["optional"]=> string(14) "optional value" ["option"]=> bool(false)}