Php 如何使用开关盒执行OR语句?(菲律宾)

Php 如何使用开关盒执行OR语句?(菲律宾),php,logic,switch-statement,Php,Logic,Switch Statement,如何转换此if语句: for($i = 1; $i < $argc; $i++) { ... if(in_array($argv[$i], array('-V', '--version'))) { $displayVersion = TRUE; } ... } ($i=1;$i

如何转换此if语句:

for($i = 1; $i < $argc; $i++)
{
    ...
    if(in_array($argv[$i], array('-V', '--version')))
    {
        $displayVersion = TRUE;
    }
    ...
}
($i=1;$i<$argc;$i++)的

{
...
if(在数组($argv[$i],数组('-V','-version'))中)
{
$displayVersion=TRUE;
}
...
}

在不需要写两条switch语句的情况下,直接翻译如下:

switch($argv[$i])
{
    case '-V':
    case '--version':
        $displayVersion = true;
    break;
}
switch(in_array($argv[$i], array('-V', '--version'))){
    case true:
        $displayVersion = TRUE; break;
}
不过,你也可以这样做,这更清楚

switch($argv[$i]){
    case '-V':
    case '--version':
        $displayVersion = TRUE; break;
}
根据您要执行的操作,单行程序可能更清晰,尽管它与上述代码的不同之处在于,如果_array($argv[$i],array('-V','-version'))中的
为false,则变量将设置为false。
为false。鉴于变量名,我怀疑这是件坏事

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

除了修复这个问题之外,您可能还想看看PHP命令,它是一个处理短格式和长格式的命令行参数的函数

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

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

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

请注意,您需要PHP5.3才能在Windows上工作。

我甚至没有想过要这样做!非常感谢你!
$options = getopt('V', array('version'));

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