dedlfix: [gelöst] ]Fatal error: Unccaught exception 'PDOException'...

Beitrag lesen

Tach!

Als es noch keine Interfaces in PHP gab, musste man sich so behelfen. Da PHP das nicht mehr tun muss, funktioniert es also nicht.
PHP 4 hat nahezu keine interessanten OOP-Features implementiert gehabt, lediglich simple Vererbung. Ich glaube kaum, dass man in diesem mangelhaften Zustand Interfaces simulieren wollte - man kann ja nur von genau einer Klasse erben, man kann aber parallel mehr als ein Interface implementieren.

Damals gab es nur die Möglichkeit, mit method_exists() oder is_callable() zu prüfen, ob eine Klasse eine bestimmte Methode hat (nebst isset() für Eigenschaften). Das ist ja das, was Matze vorschlug, um ebendies zu prüfen. Das ist mit Interfaces (für Methoden) nun obsolet geworden. Deshalb nehme ich an, dass aktuelles PHP lediglich auf instanceof InterfaceName prüft und der Interface-Mechanismus vorher bereits die "Drecksarbeit" der Vorhandenseinprüfung erledigt hat.

Ich denke aber auch, dass es nicht sinnvoll ist, sich über diese alte PHP-Version noch Gedanken zu machen.

Find ich auch, und deswegen kann man auch die alten Einzelprüfmöglichkeiten zugunsten von Interfaces, Vererbung und Type Hinting ad acta legen.

Wenn du dir mal ein sehr einfaches Interface ansiehst:

interface \Countable {

public function count();
}

  
Kleine Ergänzung am Rande: Interfaces definieren stets öffentliche Mitglieder. Ein public zu notieren ist zwar (im Gegensatz zu C# beispielsweise) möglich aber nicht besonders nützlich.  
  
  
dedlfix.