If und Else

  • Hallo, ich hab heute nochmal neu in PHP angefangen und hab ein kleines Problem wo ich nicht mehr durchblicke und zwar bei diesem Code was ich überhaupt nicht verstehe was da falsch dran sein sollte, weil er mir einen Fehler ausspuckt den ich mir nicht erklären kann. Und zwar wenn if (gleich mit dem) dann so { } und wenn nicht dann if else (gleich mit dem) dann Ausgabe so { }. Kann mir bitte jemand erklären was ich da falsch mache also was ich da nicht richtig mache?



  • Zitat von "hume"

    Hallo, ich hab heute nochmal neu in PHP angefangen und hab ein kleines Problem wo ich nicht mehr durchblicke und zwar bei diesem Code was ich überhaupt nicht verstehe was da falsch dran sein sollte, weil er mir einen Fehler ausspuckt den ich mir nicht erklären kann. Und zwar wenn if (gleich mit dem) dann so { } und wenn nicht dann if else (gleich mit dem) dann Ausgabe so { }. Kann mir bitte jemand erklären was ich da falsch mache also was ich da nicht richtig mache?




    Ich hab dir schon mal gesagt, dass du dir das einfach mal übersetzen sollst =/
    Wenn [KEINE ANGABE] ist das selbe wie $kochen, dann..
    Wenn ansonsten [KEINE ANGABE] ist das selbe wie $nicht, dann..


    Als erstes musst du angeben, was miteinander verglichen werden soll, denke mal in deinem Beispiel die Sekunde (am Besten in eine Variabel speichern) mit einem der anderen Werte.
    Dann ist es wichtig, dass du weißt, dass es elseif() heißt!


    Richtig also:

    PHP
    <span class="syntaxdefault"><?php<br />$kochen </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 12</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$nicht </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 10</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">date_default_timezone_set</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Europe/Berlin'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">$Zeit </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> date </span><span class="syntaxkeyword">(</span><span class="syntaxstring">"s"</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$Zeit </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> $kochen</span><span class="syntaxkeyword">)<br />{<br /></span><span class="syntaxdefault">    echo </span><span class="syntaxstring">"<p>>Mittagspause</p>"</span><span class="syntaxkeyword">;<br />}<br /></span><span class="syntaxdefault">elseif </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$Zeit </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> $nicht</span><span class="syntaxkeyword">) </span><span class="syntaxcomment">// man kann auch else if() schreiben<br /></span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    echo </span><span class="syntaxstring">"<p>Es ist noch nicht soweit!</p>"</span><span class="syntaxkeyword">;<br />}<br /></span><span class="syntaxdefault">?></span>


    Wenn du das so (oder so ähnlich schreiben möchtest) dann empfiehlt sich ein switch:

    PHP
    <span class="syntaxdefault">switch </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">date</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"s"</span><span class="syntaxkeyword">)){<br /></span><span class="syntaxdefault">    case $nicht</span><span class="syntaxkeyword">:</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// Das selbe wie If($Zeit == $nicht)<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"..."</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        break</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">    case $kochen</span><span class="syntaxkeyword">:</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// Das selbe ist wie if($Zeit == $kochen)<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"..."</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        break</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">    default</span><span class="syntaxkeyword">:</span><span class="syntaxdefault"> </span><span class="syntaxcomment">//Das selbe wie else<br /></span><span class="syntaxdefault">        break</span><span class="syntaxkeyword">();<br />}</span><span class="syntaxdefault"> </span>


    Aber schau dir auf jeden fall noch mal die If-Abfrage an!

  • Zitat

    Ich hab dir schon mal gesagt, dass du dir das einfach mal übersetzen sollst =/


    Ja, mach ich ab jetzt :) hab es jetzt verstanden, wenn kein Wert nicht da ist dann kann man auch nichts vergleichen ob es so ist xD


    Zitat

    Dann ist es wichtig, dass du weißt, dass es elseif() heißt!


    OK


    Folgende Frage noch wenn ich keinen Wert in der Variable haben möchte also, dass immer der Fehler ausgegeben werden soll wenn es nicht so und so viel Uhr ist, wie mach ich dass dann, weil ich kann ja die Variable nicht leer lassen.


  • Es ist unlogisch immer zu wollen das ein if / else Abgleich fehlschlägt, dann müsste man ja nicht mehr kontrollieren.


    Du meinst das so:


    PHP
    <span class="syntaxdefault"><br /><br />  </span><span class="syntaxkeyword">if(</span><span class="syntaxstring">"" </span><span class="syntaxkeyword">== </span><span class="syntaxdefault">$var</span><span class="syntaxkeyword">)<br />  {<br />    ...<br />  }<br /><br /> </span><span class="syntaxdefault"></span>


    Heißt so viel wie (wenn $var leer ist)


    Oder so (gleicher Effekt):


    PHP
    <span class="syntaxdefault"><br /><br />  </span><span class="syntaxkeyword">if(!</span><span class="syntaxdefault">$var</span><span class="syntaxkeyword">)<br />  {<br />    ...<br />  }<br /><br /> </span><span class="syntaxdefault"></span>
  • Zitat

    s ist unlogisch immer zu wollen das ein if / else Abgleich fehlschlägt, dann müsste man ja nicht mehr kontrollieren.


    Ja, dass schon aber zum Testen ist es egal ;)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!