5

$_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;
}

?>

スクリプトは正しく実行されますが、switchステートメントが十分ではないと思います。switchステートメントと$_POSTメソッドを使用して、より簡単な方法またはより良い方法はありますか?

4

4 に答える 4

8

恐ろしいですが、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;
}
于 2013-10-28T14:46:43.350 に答える
6

これをチェックしてください;)


if (!empty($_POST)) {

         switch ($_POST) {
        case $_POST['A']:
            #do something;
            break;
        case $_POST['B']:
            #do something;
            break;
        case $_POST['C']:
            #do something;
            break;
    }
}
于 2016-05-02T07:55:44.280 に答える
3

多分あなたは似たようなことを意味しますか?

<?php

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

?>

(これにより、最初のブランチのみではなく、一致するすべての異なるブランチが実行されます。最初に一致したブランチのみを実行する場合は、最初以外の を に変更しifますelseif。)

于 2013-10-28T14:45:52.533 に答える
2

メソッドを配置する良いswitch (){ case: }方法は次のとおりです。

if (condition){
   // Do Something    
}elseif(condition){
   // Do Something
}elseif(condition){
   // Do Something    
}

このチェーンは見るのが恐ろしいですが、あなたのユニークなケースで使用することをお勧めします。代わりに@lame-up-ducksの回答を使用できますが、これは私が個人的に使用することをお勧めするものです

于 2013-10-28T14:51:06.240 に答える