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
FronKMedlem sedan maj 200225 inlägg 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å.
MatteMedlem sedan aug. 20002 975 inlägg 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.
$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 :)
GunnarDMedlem sedan juni 20014 290 inlägg 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
netfeedMedlem sedan mars 2001593 inlägg 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
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
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.";
}
GunnarDMedlem sedan juni 20014 290 inlägg Riktigt!
Av någon konstig vana så följde dom med på köpet när jag skrev koden. :)
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
VirrdoMedlem sedan okt. 2001152 inlägg GunnarD: ASP-skadad ? =)
Bara du inte gör det till en vana, har en lärare osm blandar C++ och VB variabler hej vilt! :)
GunnarDMedlem sedan juni 20014 290 inlägg 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