Frage zur date Funktion

  • Hallo Leute,


    heute ist der 17.07.


    Ich schaue mir gerade die Video DVD zu PHP an.


    Dort wird die Funktion date () erklärt.


    Auf dem Video ist folgendes zu sehen:


    <?php


    echo date (d);


    ?>


    Das soll den aktuellen Tag ausgeben. Für heute wäre das 17.


    Das macht es aber nicht. Ich bekomme eine Fehlermeldung.


    Notice: Use of undefined constant d - assumed 'd' in C:\xampp\htdocs\test.php on line 3
    17


    Erst wenn ich, wie durch die Fehlermeldung vorgeschhlagen einfache ANführungsstriche setze,
    wird 17 ausgegeben.


    Also:


    <?php


    echo date ('d');


    ?>



    Warum ist das denn so: Im Video geht es doch auch ohne ' ' ?


    Danke

  • Ähm, dann hat das Video einen Fehler:
    Denn die Date-Funktion nimmt als erstes Argument nur einen Wert vom Typ String = Zeichenkette entgegen.
    Wenn du aber date(d) schreibst, geht der PHP-Parser davon aus, dass es eine Konstante vom Typ String gibt, die das Datumsformat enthält.
    Gibt es aber nicht, und so beschwert sich PHP mit einer Notice.
    DerWaldschrat

  • Danke für die Antwort.


    Das Video scheint aber noch einen Fehler zu haben:



    Es geht um Schleifen, hier die while Schleife.


    Der Code im Video lautet genau:


    <?php
    while ( $wert < 5 )
    {
    echo "Nr. $wert <br />";
    $wert++;
    }
    ?>


    Es soll dann folgendes erscheinen:
    Nr.
    Nr. 1
    Nr. 2
    Nr. 3
    Nr. 4



    Bei mir erscheint aber folgendes:


    Notice: Undefined variable: wert in C:\xampp\htdocs\test.php on line 2


    Notice: Undefined variable: wert in C:\xampp\htdocs\test.php on line 4
    Nr.


    Notice: Undefined variable: wert in C:\xampp\htdocs\test.php on line 5
    Nr. 1
    Nr. 2
    Nr. 3
    Nr. 4


    Wieso denn das?


    Danke

  • Das liegt daran das du Variablen erst setzen musst um sie benutzen zu können:

    PHP
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br /><br />  $wert </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">  while </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$wert </span><span class="syntaxkeyword"><</span><span class="syntaxdefault"> 5</span><span class="syntaxkeyword">){<br /></span><span class="syntaxdefault">    echo </span><span class="syntaxstring">"Nr. $wert <br />"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    $wert</span><span class="syntaxkeyword">++;<br /></span><span class="syntaxdefault">  </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">?><br /></span></span>


    Zählen tut man normal aber auch mit der for Schleife:


    PHP
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br /><br />  $wert </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">  for<br />  </span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">    $wert </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">                  </span><span class="syntaxcomment">// eine oder mehrere (durch komma getrennt)<br /></span><span class="syntaxdefault">    $ungebrauchteVariable </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 42</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// variable/n werden gesetzt<br /><br /></span><span class="syntaxdefault">    $wert </span><span class="syntaxkeyword"><</span><span class="syntaxdefault"> 5</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// bis wann wird gezählt<br /><br /></span><span class="syntaxdefault">    $wert</span><span class="syntaxkeyword">++</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// was passiert nach jedem durchlauf mit $wert<br /></span><span class="syntaxdefault">  </span><span class="syntaxkeyword">){<br /></span><span class="syntaxdefault">    echo </span><span class="syntaxstring">"Nr. $wert <br />"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">  </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">  </span><span class="syntaxcomment">// oder kurz:<br /></span><span class="syntaxdefault">  for</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$wert </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> $wert </span><span class="syntaxkeyword"><</span><span class="syntaxdefault"> 5</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> $wert</span><span class="syntaxkeyword">++)<br /></span><span class="syntaxdefault">  </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    echo </span><span class="syntaxstring">"Nr. $wert <br />"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">  </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">?><br /></span></span>
  • Die ganzen "Notice"s sind keine richtigen Fehlermeldungen, sie zeigen an, dass deine Variable $wert noch nicht definiert wurde, d.h. keinen Wert hat.
    Dafür musst du, wie Flow Snow schon geschrieben hat, ihr vorher einen Wert zuweisen.


    Im Video werden sie nicht angezeigt, da man Fehlermeldungen und auch die Notizen abschalten kann. In den Videos werden Notizen nicht ausgegeben, wie es auch die Standardeinstellung der meisten Server ist.

  • Ich verstehe...eine Variable zu setzen ist notwendig.
    Das wir im Video auch nachher beschrieben.



    Ich habe mich nur gewundert, warum keine Notice Meldungen iim Video zu sehen waren.


    "Im Video werden sie nicht angezeigt, da man Fehlermeldungen und auch die Notizen abschalten kann. In den Videos werden Notizen nicht ausgegeben, wie es auch die Standardeinstellung der meisten Server ist."


    Das erklärt es. Hätte man aber vielleicht im Video auch erwähnen sollen.

  • Ich weiß nicht ob es in den Videos beschrieben wird aber schreibe einfach eine dieser Zeilen als allererstes in deine PHP Datei:


    PHP
    <span class="syntaxdefault"><br />  error_reporting</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">E_ALL</span><span class="syntaxkeyword">); </span><span class="syntaxcomment">// zeigt ALLES, von error über notice bis hin zur nummer des nächsten pizzadienstes<br />  </span><span class="syntaxdefault">error_reporting</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">); </span><span class="syntaxcomment">// zeigt gar keine fehler mehr es sei denn sie brechen das komplette skript ab<br /> </span><span class="syntaxdefault"></span>


    Für mehr Einstellungen schau mal bei php.net - error_reporting, dort findest du wenn du leicht runterscrollst eine Liste mit allen Einstellungen und Links zu deren Beschreibung.

Jetzt mitmachen!

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