如何使用 Switch 案例执行 OR 语句? (PHP)

发布于 2024-08-19 12:18:01 字数 250 浏览 2 评论 0原文

我将如何将此 if 语句转换

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

为 switch case 而不需要编写两个 switch 语句?

How would I go about converting this if statement:

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

Into a switch case without needing to write two switch statements?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

无戏配角 2024-08-26 12:18:01
switch($argv[$i])
{
    case '-V':
    case '--version':
        $displayVersion = true;
    break;
}
switch($argv[$i])
{
    case '-V':
    case '--version':
        $displayVersion = true;
    break;
}
蓬勃野心 2024-08-26 12:18:01

直接翻译如下:

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

但是你也可以这样做,这样更清楚。

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

根据您想要执行的操作,单行可能会更清晰,尽管它与上面的代码不同,因为如果 in_array($argv[$i], array('-V ', '--version')) 是错误的。鉴于你的变量名,我怀疑这是一件坏事。

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

A direct translation would be as follows:

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

However you could also do something like this, which is clearer.

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

Depending on what you want to do, a one liner may be more clear, although it differs from the above code in that the variable will be set to false if in_array($argv[$i], array('-V', '--version')) is false. Given your variable name I doubt this is a bad thing.

$displayVersion = in_array($argv[$i], array('-V', '--version'));
你另情深 2024-08-26 12:18:01
switch ($argv[$i])
{
    case '-V':
    case '--version':
        $displayVersion = true;
        break;
    case 'other':
        // do other stuff
        break;
    default:
        // your "else" case would go here
        break:
}
switch ($argv[$i])
{
    case '-V':
    case '--version':
        $displayVersion = true;
        break;
    case 'other':
        // do other stuff
        break;
    default:
        // your "else" case would go here
        break:
}
不语却知心 2024-08-26 12:18:01

除了解决这个问题之外,您可能还需要查看 PHP getopt 命令,这是一个处理命令的函数短格式和长格式的行参数。

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

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

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

请注意,您需要 PHP 5.3 才能在 Windows 上运行。

In addition to fixing this, you may want to look at the PHP getopt command, which is a function to process command-line arguments in both short and long formats.

Edit: Actually, here's a code block

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

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

Note that you need PHP 5.3 for this to work on Windows.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文