dedlfix: Kann man PHP Header Angabe und Namespace Festlegung includen?

Beitrag lesen

Tach!

PS: Bei mir ist grade eine Folgefrage aufgetaucht: Sehe ich das richtig, dass die Angabe declare(strict_types = 1); zu Beginn eines Skripts lediglich dazu dient, dass ältere PHP Versionen, die mit diesem Feature nichts anfangen können, keine Probleme bereiten und die entsprechenden Hints ignorieren?

Ich vermute, dass du das nicht richtig siehst. Ältere Versionen haben in der Regel keine Ahnung davon, was in zukünftigen Versionen hinzugefügt wurde. Neue Elemente sehen sie deshalb als Sysntaxfehler an. Es sei denn, sie waren damals auch schon als reserviert bekannt, waren gültige Syntax, und wurden lediglich ignoriert. Neue Deklarationen können also nur neue Versionen steuern.

Weil wenn ich bei einem PHP 7 Skript bei einer Funktion den Typ der zu übergebenen Variablen und/oder den der Ausgabe festlege, kommen bei Nichtbeachtung auf jeden Fall Fehlermeldungen. Unabhängig davon, ob declare(strict_types = 1); angegeben wurde oder nicht.

Das sollte nicht der Fall sein. Ich hab das mit jenen Beispielen in der PHP Sandbox probiert, und komme zu den dort aufgeführten Ergebnissen.

dedlfix.