---
title: "Switchsats med flera parametrar?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/53861-switchsats-med-flera-parametrar"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "GrodanBoll"
published: "2002-09-21T14:50:59.000Z"
updated: "2002-09-23T16:43:54.000Z"
replies: 9
views: 301
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/53861-switchsats-med-flera-parametrar"
---

# Switchsats med flera parametrar?

## #1 — GrodanBoll, 2002-09-21T14:50Z

Hej hej :)

Jag skulle behöva ha en switchsats med flera parametrar.
Typ:

```
switch ($id, $l)
{
  case 2, 's';
     ech0 "Bla bla";
     break;
  o.s.v.
}
```

Kan man ha flera inparametrar? Har för mig att jag har läst om det någonstans.

Och hur gör man? :q

/G

Permalänk: https://www.webforum.nu/p/53861

## #2 — FronK, 2002-09-21T18:17Z

Borde ju funka om man gör såhär:

```
switch ($xxxxx)
{
  case xxxxx:
  switch($yyyyy)
  {
    case yyyyy:
    nånting här
    break;

    case zzzzz:
    nånting här
    break;
  }
  break;

  case yyyyy:
  switch ($zzzzz)
  {
    case xxxxx:
    tralala
    break;

    case yyyyy:
    tralala
    break;
  }
  break;
}
```

Ser säkert jätte rörigt ut, men så blir det, finns säkert smartare sätt också.

Permalänk: https://www.webforum.nu/p/793669

## #3 — Matte, 2002-09-21T18:55Z

Att det går att ha flera alternativ i en case är inga problem:

```
switch ($var){
  case $var==1 || $var==2:
    //gör något
  break;
  case $var==3 || $var==4:
    //gör något
  break;
}
```

 
Om det sen går att skicka in flera variabler att kolla, det har jag ingen aning om. I så fall skulle det vara något liknande detta:

```
switch ($var1 && $var2){
  case $var1==1 && $var2==2:
    //gör något
  break;
  case $var1==3 && $var2==4:
    //gör något
  break;
}
```

 Om det fungerar har jag som sagt ingen aning om. Testa om du har lust.

Permalänk: https://www.webforum.nu/p/793708

## #4 — GrodanBoll, 2002-09-22T09:41Z

```
$a = "kalle";
$b = "ada";

switch ($a && $b)
{
	case ($a == "kalle" && $b == "ada"):
		echo "Det stämmer";
		break;
	case ($a == "pelle" && $b == "ada"):
		echo "Men detta ska ju inte komma ut ju";
		break;
	default:
		echo "Default.";
}
```

Detta fungerade precis som Matte sa.

Dock fattar jag inte varför det ska vara '&&' istället för ',' som man alltid använder annars (alltså när man skickar in variablerna)?
Kan ni förklara det?

Tackar  :bire 

/Ni skulle se som Grodan hoppar :)

Permalänk: https://www.webforum.nu/p/794022

## #5 — GunnarD, 2002-09-22T09:56Z

Därför att i detta fallet utnyttjar du inte switch funktionen!

switch( $a && $b ) är alltid uppfylt så länge $a och $b inehåller någonting (värdet SANT).
Sedan i varje case sats blir värdet av dina uttryck SANT, vilket du sedan testar mot uttrycket i swicth() satsen.

Det hadde varit enklare och mera logiskt att i detta fallet använda:

```
if($a == "kalle" && $b == "ada") then {
  echo "Det stämmer";
} elseif ($a == "pelle" && $b == "ada") then {
  echo "Men detta ska ju inte komma ut ju";
} else {
  echo "Default.";
}
```

Alltså switch() satsen är onödig eftersom du ändå beräknar saker i case satserna.
Vitsen med switch() är att man beräknar något som resulterar ett svar, sedan jämför man detta enda svar med ett antal case satser.

Se gärna i PHP [manualen](http://www.se.php.net/manual/en/control-structures.switch.php)

Permalänk: https://www.webforum.nu/p/794029

## #6 — netfeed, 2002-09-22T10:52Z

gunnar varför har du med then i if-satserna? det behövs väl inte eller är det bara något jag missat?
är inte 

```php
if($a == "kalle" && $b == "ada") then {
  echo "Det stämmer";
} elseif ($a == "pelle" && $b == "ada") then {
  echo "Men detta ska ju inte komma ut ju";
} else {
  echo "Default.";
}
```

samma som

```php
if($a == "kalle" && $b == "ada") {
  echo "Det stämmer";
} elseif ($a == "pelle" && $b == "ada") {
  echo "Men detta ska ju inte komma ut ju";
} else {
  echo "Default.";
}
```

Permalänk: https://www.webforum.nu/p/794059

## #7 — GunnarD, 2002-09-22T11:00Z

Riktigt!
Av någon konstig vana så följde dom med på köpet när jag skrev koden. :)

Permalänk: https://www.webforum.nu/p/794065

## #8 — GrodanBoll, 2002-09-22T11:32Z

Aaaaah, kristallklart.
Fanken vad man vecklar in sig när man har ställt in sig på att använda en funktion, fast man sedan ska ha in lite mera info så omvärderar man inte situationen. E det tunnelseende det heter? :r 

Aber ja natürlisch ska jag använda if-satser istället.

Tackar :)

/G

Permalänk: https://www.webforum.nu/p/794086

## #9 — Virrdo, 2002-09-23T15:21Z

GunnarD: ASP-skadad ? =)
Bara du inte gör det till en vana, har en lärare osm blandar C++ och VB variabler hej vilt! :)

Permalänk: https://www.webforum.nu/p/795123

## #10 — GunnarD, 2002-09-23T16:43Z

ASP? knappast  :e 
Däremot hoppar jag mellan shellscripts, php, c/c++ och perl dagligen. Nu skall jag börja "leka" med Java/J2EE så jag får se vilken röra jag hamnar i.

Varför kan inte syntaxen se samma ut i dom olika språken? :OO

Permalänk: https://www.webforum.nu/p/795201

---

Tråden på webben: https://www.webforum.nu/amne/php/53861-switchsats-med-flera-parametrar
