PHP:$ _POST在switch语句中是正确的吗?

Det*_*ion 3 php post switch-statement

我在$ _POST方法上使用switch语句,我的脚本运行正常,但我认为我的代码不正确.

这是我的代码:

<?php

switch(isset($_POST))
{
    case isset($_POST['A']):
      //do something
    break;
    case isset($_POST['B']):
      //do something
    break;
    case isset($_POST['C']):
      //do something
    break;
}

?>
Run Code Online (Sandbox Code Playgroud)

我的脚本运行正常,但我认为我的switch语句不够.使用switch语句和$ _POST方法有更简单的方法或更好的方法吗?

Alb*_*hoa 6

看一下这个 ;)


if (!empty($_POST)) {

         switch ($_POST) {
        case $_POST['A']:
            #do something;
            break;
        case $_POST['B']:
            #do something;
            break;
        case $_POST['C']:
            #do something;
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)


Dan*_*ara 5

这太可怕但我更喜欢这个而不是if-else-evil-chain:

switch(true)
{
    case isset($_POST['A']):
      //do something
    break;
    case isset($_POST['B']):
      //do something
    break;
    case isset($_POST['C']):
      //do something
    break;
}
Run Code Online (Sandbox Code Playgroud)


Laj*_*res 3

也许你的意思是类似的?

<?php

if(isset($_POST['A'])){
 // do something
}
if(isset($_POST['B'])){
 // do something
}
if(isset($_POST['C'])){
 // do something
}

?>
Run Code Online (Sandbox Code Playgroud)

if(这将执行所有不同的匹配分支,而不是仅执行第一个分支。elseif如果您只想执行第一个匹配分支,请将非第一个更改为。)