Warum wurde der Fehler nicht angezeigt?

Es passiert ja immer wieder, dass man einen klassischen Syntaxfehler produziert.
So ist mir das auch passiert.
Diese Zeile hatte ich in einem Skript

if (date("j",time())==1 and day("n",time())==1) $jahresbeginn=true; else $jahresbeginn=false;

Da waren die Finger schneller als das Hirn. Es geht um day(…) :wink:
Richtig wäre

if (date("j",time())==1 and date("n",time())==1) $jahresbeginn=true; else $jahresbeginn=false;

Nur ist der Fehler den ganzen Jänner - ich habe das Mitte Jänner eingebaut - nicht aufgefallen. Erst heute am 1. Februar. Aber warum nicht vorher? Ich dachte der Interpreter prüft das alles vor der Ausführung bzw. wenn er diese Zeile erreicht sollte es meiner Meinung nach egal sein, ob die Bedinung erfüllt ist, oder nicht.
Mich würde es nur interessieren.

Bei einer AND Bedingung braucht der Interpreter die zweite Bedingung nicht mehr überprüfen, wenn die erste bereits false liefert.
Nur am ersten eines Monats ist die erste Bedingung bei dir wahr, so dass auch die zweite überprüft werden muss.

Vor der Ausführung wird nur auf syntaktische Korrektheit geprüft.

Danke. Aber gibt es die Funktion day()?

Du meinst im PHP Kern? Nein, da gibt es die nicht.