Alt 19.07.2011, 10:42:00   #1 (permalink)
Erfahrener Benutzer
Benutzerbild von Papenburger

ID: 336361
Lose-Remote

Reg: 08.05.2006
Beiträge: 1.162
Papenburger
Standard Switch/Case mit sprintf

Hallo,

derzeit sitze ich vor einem für mich großem Problem. Ich gebe an eine Funktion 5 Zahelenwerte. Per switch/case soll nun abfgefragt werden welcher Wert existiert und ein entsprechender Fall ausgeführt werden.

im Kopf habe ich folgende Abfrage gehabt:
PHP-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
switch($sprint sprintf('%d%d%d%d%d'$var1$var2$var3$var4$var5)){
case 
'00000': break;
case 
'00001': break;
case 
'00010': break;
case 
'00011': break;
case 
'00000': break;
case 
'00001': break;
.
.
.
case 
'11100': break;
case 
'11101': break;
case 
'11110': break;
case 
'11111': break; 
Weiß jemand wie ich das sprintf formatieren muss, damit ich den entsprechenden wert zurück bekomme? Wer kann mir hier weiterhelfen?

Gruß
Papenburger
Papenburger ist offline   Mit Zitat antworten
Gesponsorte Links
Alt 19.07.2011, 10:44:49   #2 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.468
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

Wandel es doch von Hand in die Dezimalentsprechung um, bevor du sowas Komisches machst. Aber ja, so müsste es klappen.
theHacker ist offline   Mit Zitat antworten
Alt 19.07.2011, 11:32:49   #3 (permalink)
return void
Benutzerbild von ice-breaker

ID: 93995
Lose-Remote

ice-breaker eine Nachricht über ICQ schicken
Reg: 27.04.2006
Beiträge: 6.026
ice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehenice-breaker genießt hohes Ansehen
Standard

2^6 (64) Case-Blöcke? Das klingt nach reinstem Spaghetti-Code


"Die Wahrheit entgeht dem, der nicht mit beiden Augen sieht." -Orici
ice-breaker ist gerade online   Mit Zitat antworten
Alt 19.07.2011, 17:09:40   #4 (permalink)
ist maskulin
Benutzerbild von DasGuru

ID: 420909
Lose-Remote
Gesperrt

DasGuru eine Nachricht über ICQ schicken DasGuru eine Nachricht über Skype™ schicken
Reg: 16.08.2008
Beiträge: 1.899
DasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz seinDasGuru kann auf vieles stolz sein
Standard

um auf deine Frage einzugehen:
wie man strings mit sprintf() formatiert siehst du hier

ansonsten wäre es evtl gut zu wissen, welche Ausgangswerte du hast um dir eine Alternative geben zu können
Do not argue with an idiot. He will drag you down to his level and beat you with experience
99%Refback für alle
| Novoline-Spiele | ich zahle meine Schulden |
3 mio Lose + Aktivitätsboni bei eBesucher
| eSig



DasGuru ist offline   Mit Zitat antworten
Alt 28.07.2011, 22:36:40   #5 (permalink)
Erfahrener Benutzer
Benutzerbild von Papenburger

ID: 336361
Lose-Remote

Reg: 08.05.2006
Beiträge: 1.162
Papenburger
Standard

Zitat:
Zitat von ice-breaker Beitrag anzeigen
2^6 (64) Case-Blöcke? Das klingt nach reinstem Spaghetti-Code
2^5 = 32 Fälle...
Ich hab ja nur 5 Variablen, welche 0 oder 1 sein können ;-)

Das Switch/Case mag in diesem Fall zwar Spaghetti-Code sein, aber äußerst Hilfreich um alle Fälle entsprechend abzufragen. Hast du eine Andere Lösung wie man das machen kann? Dies war meines Erachtens, die einfachste und schnellste Lösung. "Quick and Dirty" auf gutdeutsch gesagt. Nicht schön, aber hilfreich...

Zitat:
Zitat von DasGuru Beitrag anzeigen
um auf deine Frage einzugehen:
wie man strings mit sprintf() formatiert siehst du hier
Okay, vielleicht hab ich mich falsch ausgedrückt...
Wollte wissen, wie man die Variablen dementsprechend umwandelt, dass das Switch/Case entsprechend greift.

Zitat:
Zitat von DasGuru Beitrag anzeigen
ansonsten wäre es evtl gut zu wissen, welche Ausgangswerte du hast um dir eine Alternative geben zu können
Die Ausgangslage sind die Variablen. In ihr befinden sich ganz normale Zahlen. Für das Switch/Case muss ich ja einfach nur wissen, ob die Variable belegt ist oder nicht...

Ich bin schon selbst auf die Lösung gekommen:
Im Endeffekt wandelt man die Variablen in Booleans um. Dannach kann man per sprintf() auf das von mir beschrieben Switch/Case prüfen.

Ergebnis:
PHP-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
$var1 = (bool)$var1;
$var2 = (bool)$var2;
$var3 = (bool)$var3;
$var4 = (bool)$var4;
$var5 = (bool)$var5;

switch(
$sprint sprintf('%d%d%d%d%d'$var1$var2$var3$var4$var5)){
case 
'00000': break;
case 
'00001': break;
case 
'00010': break;
case 
'00011': break;
case 
'00000': break;
case 
'00001': break;
.
.
.
case 
'11100': break;
case 
'11101': break;
case 
'11110': break;
case 
'11111': break;
default: break; 
Das funktioniert super und für meine Zwecke vollkommen ausreichend, da ich jedenfall entsprechend prüfen muss. Zu guter Letzt darf der default natürlich nicht fehlen in dem dann eine Fehlermeldung zurück gegeben wird!

Geändert von Papenburger (28.07.2011 um 22:42:39 Uhr)
Papenburger ist offline Threadstarter   Mit Zitat antworten
Alt 29.07.2011, 06:42:55   #6 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.468
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

Zitat:
Zitat von Papenburger Beitrag anzeigen
Zu guter Letzt darf der default natürlich nicht fehlen in dem dann eine Fehlermeldung zurück gegeben wird!
Es kann keinen default-Fall geben
5 Bool-Variablen haben nur genau 32 Möglichkeiten für unterschiedliche Belegungen.
theHacker ist offline   Mit Zitat antworten
Alt 29.07.2011, 07:13:39   #7 (permalink)
ohne Vertrauen
Benutzerbild von Bububoomt

ID: 10361
Lose-Remote
Abwesend

Bububoomt eine Nachricht über ICQ schicken
Reg: 28.04.2006
Beiträge: 15.363
Bububoomt genießt hohes AnsehenBububoomt genießt hohes AnsehenBububoomt genießt hohes AnsehenBububoomt genießt hohes AnsehenBububoomt genießt hohes AnsehenBububoomt genießt hohes AnsehenBububoomt genießt hohes AnsehenBububoomt genießt hohes AnsehenBububoomt genießt hohes AnsehenBububoomt genießt hohes AnsehenBububoomt genießt hohes Ansehen
Standard

Mache sowenig mit php inzwischen...
Kanns passieren, das die Vraiable null ist? Oder wird das bei(bool) dann in false gewandelt?
.DE 1. Jahr 3,95€, 2.Jahr oder Tranfer nur 2,95€! +2 Backlinks je Domain! ab 20 Domains+3 BL/Domain, ab 50 Domains+4BL/Domain!
Angebot mit Backlink (Preise sind dauerhaft gültig!) bis 31.5.2012!! Weitere Preise auf Anfrage
-> PN an Mich
Screenshot machen MammutHaNull Gold verkaufen
Bububoomt ist offline   Mit Zitat antworten
Alt 31.07.2011, 13:58:59   #8 (permalink)
Erfahrener Benutzer
Benutzerbild von Papenburger

ID: 336361
Lose-Remote

Reg: 08.05.2006
Beiträge: 1.162
Papenburger
Standard

Zitat:
Zitat von Bububoomt Beitrag anzeigen
Mache sowenig mit php inzwischen...
Kanns passieren, das die Vraiable null ist? Oder wird das bei(bool) dann in false gewandelt?
NULL müsste eigentlich false sein.
Das "default" dient nur zur Sicherheit...
Papenburger ist offline Threadstarter   Mit Zitat antworten
Antwort

Gesponsorte Links

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[3D Scene] Worst Case Hellstorm Grafik & Design 4 05.10.2010 19:46:39
[S]Case/Skin für das IPhone 3G booy Kleinanzeigen 0 26.08.2009 21:19:11
[PHP] switch case-Werte auslesen? k212198 Programmierung 16 11.11.2006 10:32:44
Case Modding LED PC-Doktor Hardware 5 15.07.2006 19:13:27


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:29:43 Uhr.