Ergebnis 1 bis 9 von 9

Thema: [PHP] elseif - eine ausgeführte elseif würde doch reichen >__>

  1. #1

    [PHP] elseif - eine ausgeführte elseif würde doch reichen >__>

    PHP-Code:
    <?php
    if(empty($nickname))
        { echo 
    "Kein Nickname"; }
    elseif(empty(
    $eintrag))
        { echo 
    "Kein Eintrag"; }
    elseif(empty(
    $eintrag) and empty($nickname))
        { echo 
    "Beides nicht"; }
    else
        { echo 
    " Alles ok ";
        }
    ?>
    Wenn $nickname und $eintrag leer sind, kommen alle 3 antworten, weniger im sinne meiner Idee.
    Ich möchte nur das eine Antwort (maximal!) kommen wird.

    Gibts da nen Kniff, oder sollte ich doch eher mehrere IFs ineinander schachteln?

    Dennis

    Edit: Die Reihenfolge sollte ich ändern, das mit 'and' muss ganz oben hin.
    Aber das wird das Problem bestimmt auch nicht lösen.

  2. #2
    Sry, aber das kann eigentlich nicht angehen. Ein else- oder elseif-Anweisungsblock wird nur dann ausgeführt, wenn die vorherige if-Anweisung false ergab. Daher können eigentlich nicht alle drei Meldungen ausgegeben werden. Wenn du das mit AND an den Anfang setzt, müsst ees gehen.
    PHP-Code:
    <?php
    if(empty($eintrag) AND empty($nickname))
    {
       echo 
    "Beides nicht";
    }
    elseif(empty(
    $nickname))
    {
       echo 
    "Kein Nickname";
    }
    elseif(empty(
    $eintrag))
    {
       echo 
    "Kein Eintrag";
    }
    else
    {
       echo 
    " Alles ok ";
    }
    ?>

  3. #3
    hm, wenn and an erster stelle ist, kommen 'nur' zwei meldungen stats 3... >__>

    Dennis

    Edit: Whaa, mein Code geht auch >__> Ich hab den Text 'beides falsch' noch nicht aus dem unteren teil der seite gelöscht, sodass dieser immer da stand, egal was für 'ifs' da waren

    Geändert von Maisaffe (07.04.2005 um 18:56 Uhr)

  4. #4
    bei einzeilern brauchst du übrigens keine klammern, die sind für mehrzeilige if statements gedacht

  5. #5
    Zitat Zitat von Janus1810
    bei einzeilern brauchst du übrigens keine klammern, die sind für mehrzeilige if statements gedacht
    Das ist natürlich Geschmackssache. Ich finde es übersichtlicher, immer die geschwungenen Klammern zu setzen, deshalb mache ich es auch. Andere widerum findes es unübersichtlicher und machen es nicht. Jedem das Seine.

  6. #6
    Zitat Zitat von Janus1810
    bei einzeilern brauchst du übrigens keine klammern, die sind für mehrzeilige if statements gedacht
    Nicht? Wenn ich jetz nen 15Zeilen Code habe und ich diesen in eine Zeile quetsche, brauche ich dann noch Klammern?

    Ist nur eine Frage am Rande.
    Ich finde die Klammern <dingsi>sexy xO</dingsi>!

    Dennis

  7. #7
    Zitat Zitat von dennis_meckel
    Nicht? Wenn ich jetz nen 15Zeilen Code habe und ich diesen in eine Zeile quetsche, brauche ich dann noch Klammern?
    Ja, afaik schon. Ohne Klammer wird nur der nächste Befehl übersprungen. Für Php ist nur ; relevant, Zeilenumbrüche sind genauso Whitespaces wie Leerzeichen am Zeilenanfang.

  8. #8
    Zitat Zitat
    bei einzeilern brauchst du übrigens keine klammern, die sind für mehrzeilige if statements gedacht
    Das mag zwar vielleicht bequem sein, aber ich würde (und tue es auch) sie immer setzen, weil man dann sie dann nicht noch extra setzen muss, wenn noch eine Anweisung hinzukommet. Außerdem sind die Klammern bestimmt nicht extra dafür "gedacht". AFAIK dienen geschweifte Klammern in vielen Programmiersprachen (will keinen Zoff, ob PHP nun eine ist oder nicht) dazu, mehrere Anweisungen zusammenzufassen. Das wird auch bei Funktionen (bei denen sie glaube ich wirklich notwendig sind) und switches o.Ä. so gemacht.

  9. #9
    Zitat Zitat von dead_orc
    Das mag zwar vielleicht bequem sein, aber ich würde (und tue es auch) sie immer setzen, weil man dann sie dann nicht noch extra setzen muss, wenn noch eine Anweisung hinzukommet. Außerdem sind die Klammern bestimmt nicht extra dafür "gedacht". AFAIK dienen geschweifte Klammern in vielen Programmiersprachen (will keinen Zoff, ob PHP nun eine ist oder nicht) dazu, mehrere Anweisungen zusammenzufassen. Das wird auch bei Funktionen (bei denen sie glaube ich wirklich notwendig sind) und switches o.Ä. so gemacht.
    Jo, ich werde sie tortzdem auch bei Einzelern/ Ein-code-stücken verwenden, sie sind halt <dingsi>sexy</dingsi>.

    Dennis

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •