php 命令行参数解析工具类的示例代码
array(), 'args'=>array());
while($index < $length) {
// current value
$curVal = $argv[$index];
// short options or long options
if( ($sp = self::isShortOptions($curVal)) || ($lp = self::isLongOptions($curVal)) ) {
// options array key
$key = $sp ? $sp : $lp;
// go ahead
$index++;
if( isset($argv[$index]) && self::isArg($argv[$index]) ) {
$retArgs['opts'][$key] = $argv[$index];
} else {
$retArgs['opts'][$key] = true;
// back away
$index--;
}
} // short options with value || long options with value
else if( false !== ($key = self::isShortOptionsWithValue($curVal))
|| false !== ($key = self::isLongOptionsWithValue($curVal)) ) {
$retArgs['opts'][$key] = self::$shortOptVal;
} // command args
else if( self::isArg($curVal) ) {
$retArgs['args'][] = $curVal;
}
// incr index
$index++;
}
self::$optsArr = $retArgs['opts'];
self::$argsArr = $retArgs['args'];
self::$isParse = true;
return $retArgs;
}
}用法如下:
option('h', function ($val){
// 处理选项 h
// $val 选项值
// ...
echo 'Option h handler.';
});命令行测试:












