Не могу $_POST использовать со switch

Помогите. Не могу заставить работать switch case в место if.

У меня все данные приходят через $_POST в контролер




   if(isset($_POST['Option'])) {

       ..........................

     }


   if(isset($_POST['Car'])) {

       ..........................

     }

   if(isset($_POST['Comment'])) {

       ..........................

     }

    .............................

        



постом $_POST приходит




Array ( [yt0] => Create 

[Car] => Array ( [Stock] => [VIN] => [Dealer] => [Type] => 0 [Mileage] => 0 [Date_in_Stock] => [Is_Locked] => 0 [Is_Soled] => 0 [Year] => 4 [Make] => 44 [Model] => 444 [Trim] => [Model_number] => [Body] => [Standard_Body] => [Transmission] => [Transmission_Speed] => [Transmission_Description] => [Doors] => 0 [Engine_Cylinders] => [MSRP] => 0 [Selling_Price] => 0 [Invoce_Amount] => 0 [Blue_Book] => 0 [Internet_Price] => 0 [Misc_Price1] => 0 [Misc_Price2] => [Misc_Price3] => ) 

[Comments] => Array ( [Main_Comments] => [Comment1] => [Comment2] => [Comment3] => [Comment4] => )



Хочу чтобы было типа такого. Но как не пробовал не получается.




witch($_POST) {

case 'Car': команды1; [break;]

case 'Comments': команды2; [break;]

case 'Option': команды3; [break;]



Перечитайте доки по switch

По сути, то что вы написали в case, индентично


if($_POST == 'Car')

и подобно для каждого случая.

я хочу чтобы у меня работал switch а не if. Я читал документации но как не делал все равно не получается.

Вы можете посоветовать как будет работать со switch.

глупая затея сюда пихать свитч, он больше для сравнения, когда конкретно известны оба аргумента, ну если уж так хотите, типа:

foreach ($_POST as $name=>$value){

switch ($name) {

case 'Cars':


    CVarDumper::dump($value);


    break;

}

}

кстати, оптимальнее вот так:

switch (true) {

case isset($_POST['cars']):


    ...


    break;

}

но если у вас будет мультиформ, то я вам никаких советов не давал. Тобишь я не несу ответственности за глючность кода :smiley:

Спасибо попробую