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
的輸出中的相應值將成為陣列。 - 必需的引數選項(一個冒號)接受一個空格或沒有空格(如可選引數選項)作為分隔符
- 在一個無法對映到任何選項的引數之後,後面的選項也不會被對映。