Antwort schreiben 
 
Themabewertung:
  • 1 Bewertungen - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
dynamische Switch-Anweisung
02.01.2008, 11:24 (Dieser Beitrag wurde zuletzt bearbeitet: 02.01.2008 11:25 von Sam Fisher.)
Beitrag: #1
dynamische Switch-Anweisung
Hallo !
Ich bin ja in PHP ein absoluter Anfänger. Da ich bester werden will, versuche ich im Augenblick so kleine Scripte zu erstellen, die eigentlich keinen Sinn haben. BSP: Ich lasse ein Array mit den Zahlen 1 bis 10 füllen oder so. Es geht mir rein um die Übung und um das verstehen.

Jetzt stehe ich aber vor einem, für mich großem, aber für euch wahrscheinlich kleinem Problem.

Ich habe folgenden Code. Der Funktioniert auch.

PHP-Code:
<?php
    error_reporting
(E_ALL);
    
    
$Vorname "Leo";
    
    switch (
$Vorname) {
        case 
"Peter":
            echo 
"Peter";
            break;
        case 
"Paul":
            echo 
"Paul";
            break;
        case 
"Leo";
            echo 
"Leo";
            break;
        default:
            echo 
"Default-Anweisung wird ausgeführt";
            
    }
?>

Nun habe ich mir aber folgendes Überlegt. Wenn ich das ganze mit 20 Namen oder so machen müsste, dann wäre das eine große Tipparbeit und würde die Sache nur unnötig verkomplizieren.

Deshalb hatte ich die Idee, die Namen in ein Aray zu schreiben und den Inhalt der SWITCH dann dynamisch zu generieren. Das wollte ich mit foreach machen. Leider hat es nicht funktioniert.

Daher jetzt meine Frage, kann man das überhaupt so machen, oder bin ich da komplett auf dem Holzweg.

Hier ist der Code so wie ich es versucht habe.
PHP-Code:
<?php
    error_reporting
(E_ALL);
    
    
$Familie = array("Leo""Paul""Peter""Vera");
        
    switch (
"Peter") {
        foreach (
$Familie as $Name) {
            case 
$Name
                echo 
$Name;
                break;
        }
            default:
            echo 
"Default-Anweisung wird ausgeführt";
    }
    
?>

Ich hoffe, dass mir jemand helfen kann. Vielen Dank im Voraus.
Viele Grüße
Sam

"Es gibt 9 Millionen Terroristen auf der Welt und ich muss an einen geraten, der kleinere Füße hat als meine Schwester."

John McClane
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.01.2008, 11:46
Beitrag: #2
RE: dynamische Switch-Anweisung
Wäre so recht unsinnig.

$vorname = "Leo";
switch($vorname) { case "Leo": echo "Leo";}

< wo ist da der sinn?
Dann mach doch echo $vorname

Ich selber würde es immer so hinschreiben, dass mit der schleife würde nicht funktionieren, soweit ich denke^^..

mfg

[Bild: blacksoul.jpg]
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.01.2008, 12:53
Beitrag: #3
RE: dynamische Switch-Anweisung
Hallo !

Du hast natürlich vollkommen recht. Es ist totaler Unsinn. Es geht mir aber nicht darum, ein Script zu schreiben, dass irgend einen Sinn macht. Ich mache zur Zeit nur "Sinnlose" Übungen, um zum Beispiel in diesem Fall die SWITCH oder andere PHP Sachen zu testen und das erlernte wissen zu Testen undauch zu festigen.

Das mit dem foreach geht also nicht, habe ich dich da richtig versanden?
Viele Grüße
Sam

"Es gibt 9 Millionen Terroristen auf der Welt und ich muss an einen geraten, der kleinere Füße hat als meine Schwester."

John McClane
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.01.2008, 14:47
Beitrag: #4
RE: dynamische Switch-Anweisung
Dein Script könnte von der Logik her zwar funktionieren, allerdings tut es das natürlich nicht, da ein switch "Hardcecodet" ist, d.h. du überprüfst nur fest vorgegebene Werte, du kannst die Foreach anweisung nicht verschachtelt mit einem Switch darstellen. Allerdings gibt es eine viel einfachere möglichkeit die Funktion deines Programmes darzustellen.
Das würde dann volgenermaßen aussehen:
PHP-Code:
<?php
    error_reporting
(E_ALL);
    
    
$name "Peter";
    
$familie = array("Leo""Paul""Peter""Vera");
    if(
in_array($name$familie)) {
       echo 
$name.' ist in der Familie!';
    } else {
       echo 
'Leider ist '.$name.' nicht in der Familie!';
    }
?>
Hier kurz eine erklärung:
Du hast deinen Namen, den du überprüfen möchtest, hier ist er Hardgecodet, aber kann auch aus irgendeiner quelle stammen, z.B. Datenbank, Get oder Post Daten.
Als nächstes kommt das Array das alle Familienmitglieder enthält.
So in der nächsten Zeile wirds ein bisschen spannender Smile Die Funktion in_array() überprüft einfach ob ein Wert in einem Array vorhanden ist, falls er gefunden wurde, wird true andernfalls false zurückgegeben. Dementsprechend wird dann eine Meldung ausgegeben.
Zu in_array() kannst du dir auch die Manual Seite: http://de.php.net/in_array anschauen.

Ich hoffe ich konnte dir helfen

MFG
Axel

http://www.axel-wahlen.de
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.01.2008, 15:02
Beitrag: #5
RE: dynamische Switch-Anweisung
Hallo !

Vielen Dank für deine Antwort. Das heißt, dass es theoretisch richtg durchdacht war, aber SWITCH erwartet eine ganz bestimmte Schreibweise und kann mit einem foreach nix anfangen.

Ich habe mit den Text über in_array durchgelesen und war etwas verwudert, da das array an 2 Stelle angegeben wird. Deshalb hat es zuerst auch nicht funktioniert, las ich versucht habe deinen Code selbst nachzucoden. Denn bei zum Beispiel array_push komm ja das Array zuerst. Naja. Wieder was gelernt.

Vielen Dank für das Erklären und das Beispiel. Es dürfte allergings nicht die letzte Anfängerfrage gewesen sein, da ich mir vorgenommen habe PHP jetzt richtig zu lernen.

Vielen Dank im voraus.
Grüße
Sam

"Es gibt 9 Millionen Terroristen auf der Welt und ich muss an einen geraten, der kleinere Füße hat als meine Schwester."

John McClane
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.01.2008, 17:52
Beitrag: #6
RE: dynamische Switch-Anweisung
Sam Fisher schrieb:Vielen Dank für das Erklären und das Beispiel. Es dürfte allergings nicht die letzte Anfängerfrage gewesen sein, da ich mir vorgenommen habe PHP jetzt richtig zu lernen.

Bitte, dafür sind wir doch da Biggrin
Außerdem kommt so wieder ein bisschen Leben hier rein

MFG
Axel

http://www.axel-wahlen.de
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Problem mit: PHP-SWITCH styleCoder 2 360 15.09.2005 09:51
Letzter Beitrag: Virus
  navigieren mit indes.php?action=... (switch) problem Novadis 7 390 31.05.2005 14:18
Letzter Beitrag: e-phy
  Mit switch prüfen, ob mehrere Vars numeric sind ~Christian 5 283 23.02.2005 17:12
Letzter Beitrag: rene

Gehe zu:

KontaktWebhilfe.infoNach obenZum InhaltArchiv-ModusRSS-Synchronisation