getopt() 的边缘情况
此示例显示了当用户输入不常见时 getopt
的行为:
getopt.php
var_dump(
getopt("ab:c::", ["delta", "epsilon:", "zeta::"])
);
Shell 命令行
$ php getopt.php -a -a -bbeta -b beta -cgamma --delta --epsilon --zeta --zeta=f -c gamma
array(6) {
["a"]=>
array(2) {
[0]=>
bool(false)
[1]=>
bool(false)
}
["b"]=>
array(2) {
[0]=>
string(4) "beta"
[1]=>
string(4) "beta"
}
["c"]=>
array(2) {
[0]=>
string(5) "gamma"
[1]=>
bool(false)
}
["delta"]=>
bool(false)
["epsilon"]=>
string(6) "--zeta"
["zeta"]=>
string(1) "f"
}
从这个例子中可以看出:
- 如果启用,单个选项(无冒号)始终带有
false
的布尔值。 - 如果重复选项,则
getopt
的输出中的相应值将成为数组。 - 必需的参数选项(一个冒号)接受一个空格或没有空格(如可选参数选项)作为分隔符
- 在一个无法映射到任何选项的参数之后,后面的选项也不会被映射。