Hallo MB,
wie kann man eigentlich Klassen als Typ spezifizieren
Sprichst Du hier von type declarations beim Aufruf von Methoden oder Funktionen? Das geht zur Zeit nur mit skalaren Typen, oder generisch als "object". Eine Funktionsdeklaration wie removeUser(User u)
ist nicht möglich. PHP kommt nur schrittweise beim Einführen strikter Typisierung voran - da müssen User und Programmierer der Sprache erstmal vom Nutzen überzeugt werden.
Starke Typisierung bei Funktionsaufrufen bedeutet mehr Aufwand zur Laufzeit, es sei denn, man führt auch starke Typisierung bei Variablen und Objekteigenschaften ein - dann kann es der Compiler prüfen. Das ist aber ein Konzept, das PHP historisch fremd ist. Viele IDEs helfen hier über PHPDoc Kommentare, die Typhinweise enthalten, sie geben dann Warnungen aus.
Was wohl in PHP 7.4 kommen soll, ist starke Typisierung bei Objekteigenschaften. Du brauchst also noch etwas Geduld, bis das geht.
Rolf
sumpsi - posui - clusi