命令行执行脚本时,传入参数
php test.php -a 100 -b 200 -c 300 -d 400
array getopt ( string $options
[, array $longopts
] )
Gets options from the command line argument list,This function will return an array of option / argument pairs or FALSE on failure.
接收来自命令行传入的参数列表,一个字符代表一个参数。
例:$options = "a:b:c:d";
冒号“:” 代表该选项需要值。
$options中的每个字符与选项字符相对应。
比如一个选项字符"a"对应一个选项"-a"。
注意:选项字符只能是 a-z 和 0-9,不能为空格。
$options 参数有以下格式的选项:
1、单独的字符:不接收值。
2、字符后跟一个冒号:必须传值。
3、字符后跟两个冒号:可选择传值。
一个选项字符后紧跟着相应的值,在值和选项字符中间,可以有多个空格。
例:$longopts = array('usrid:', 'msgid:', 'pass:');
$longopts中的每一个元素对应一个选项。
比如一个元素"usrid"对应一个选项"--usrid"。
例:php test.php --usrid=100 --msgid=200 --pass=asfasf
传入的参数和值之间,是支持加等号"="的。
<?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);
?>
执行以下脚本:
php script.php -f "value for f" -v -a --required value --optional="optional value" --option
输出:
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)
}
再看一个例子:
<?php
$options = getopt("abc");
var_dump($options);
?>
执行以下脚本:
输出:
array(2) {
["a"]=>
array(3) {
[0]=>
bool(false)
[1]=>
bool(false)
[2]=>
bool(false)
}
["c"]=>
bool(false)
}