Normalerweise würde es als eine Konstante interpretiert werden, aber wenn PHP eine Konstante mit diesem Namen nicht finden kann, nimmt es an, dass es trotz des Fehlens von Anführungszeichen ein String-Literal ist. Dies erzeugt eine E_NOTICE-Nachricht (die möglicherweise nicht sichtbar ist, abhängig von Ihrer Fehlermeldungsstufe); etwas wie:
Hinweis: Verwendung von undefinierter Konstante Ja - angenommen in der script.php in Zeile 3
Grundsätzlich ist PHP einfach zu nachsichtig.
Der erste ist keine Zeichenkette.
Und es funktioniert nicht gut:
%Vor%Es ist ein Vermächtnis aus der Zeit, als PHP noch ein "Pretty home page" Form-Interpreter war und heutzutage dringend davon abgeraten wird.
Sie müssen sowohl error_reporting zeigen als auch display_errors gesetzt haben.
%Vor%PHP konvertiert Ja intern in 'Ja', wenn die Konstante Ja nicht definiert ist.
Btw .. Wenn das, was Sie wollen, vergleicht, wenn $ s hat "Ja" als Wert ein ist eine Zeichenfolge, dann müssen Sie
a) benutze strcmp oder b) Verwenden Sie den Identitätsoperator "==="