2010-02-01 52 views

回答

13
switch($argv[$i]) 
{ 
    case '-V': 
    case '--version': 
     $displayVersion = true; 
    break; 
} 
+0

我甚至没有想过这样做!非常感谢! – Urda 2010-02-01 14:21:15

3
switch ($argv[$i]) 
{ 
    case '-V': 
    case '--version': 
     $displayVersion = true; 
     break; 
    case 'other': 
     // do other stuff 
     break; 
    default: 
     // your "else" case would go here 
     break: 
} 
5

直接翻译将是如下:

switch(in_array($argv[$i], array('-V', '--version'))){ 
    case true: 
     $displayVersion = TRUE; break; 
} 

然而,你也可以做这样的事情,这是更清晰。

switch($argv[$i]){ 
    case '-V': 
    case '--version': 
     $displayVersion = TRUE; break; 
} 

取决于你想要做什么,一个内衬可能会更清楚,尽管它从上面的代码中,变量将被设置为false,如果in_array($argv[$i], array('-V', '--version'))是假的不同。鉴于你的变量名,我怀疑这是一件坏事。

$displayVersion = in_array($argv[$i], array('-V', '--version')); 
2

除了固定这一点,你可能想看看PHP getopt命令,这是处理命令行参数在短期和长期格式的功能。

编辑:其实,这里有一个代码块

$options = getopt('V', array('version')); 

if ($options['V'] || $options['version']) { 
    $displayVersion = TRUE; 
} 

请注意,你需要PHP 5.3这个在Windows上运行。