PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP] elseif - eine ausgeführte elseif würde doch reichen >__>



Maisaffe
07.04.2005, 18:27
<?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.

dead_orc
07.04.2005, 18:44
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
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 ";
}
?>

Maisaffe
07.04.2005, 18:52
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

Janus1810
07.04.2005, 19:28
bei einzeilern brauchst du übrigens keine klammern, die sind für mehrzeilige if statements gedacht ;)

Lukas
07.04.2005, 19:51
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.

Maisaffe
07.04.2005, 20:23
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? :D

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

Dennis

Lukas
07.04.2005, 20:42
Nicht? Wenn ich jetz nen 15Zeilen Code habe und ich diesen in eine Zeile quetsche, brauche ich dann noch Klammern? :D
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.

dead_orc
08.04.2005, 13:18
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.

Maisaffe
08.04.2005, 14:05
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