Offen gestanden ist der Sinn eines Interface in PHP nur halb so sinnvoll, wie in "wirklich" objektorientierten Programmiersprachen. Java beipielsweise ist sehr streng, wenn es um die Klassen und Typen geht. PHP's automatische Typkonvertierung nimmt den interface's den programmiertechnisch relevanten Sinn. Du kannst die Methoden auch einfach so implementieren und wenn sie vorhanden sind, werden sie halt angesprochen. Das implementieren eines Interface erzwingt, dass die Methoden in der implementierenden Klasse vorhanden sind. Somit zwingst Du Dich durch Verwendung von interface's selbst sauberer zu programmieren.
Wie in dem verlinkten Beispiel können so nur in Teilen vergleichbare Klassen als ein Typ an eine Funktion übergeben werden. Der gemeinsame Typ ist das Zugmittel, unabhängig davon, ob es sich um ein Tier, genauer ein Huftier, oder einen Traktor handelt.
Scheinbar kann man sich in PHP5 selbst zu eine ordentlichen Programmierung, wie in Java, zwingen, indem man
type hinting verwendet. Ausprobiert habe ich das jedoch noch nicht.
Ein typisches Interface ist der
Iterator. Unabhängig von der Klasse (z.B. eine Liste, eine Baumstruktur, ein Array, ein Warenkorb, Buchseiten, also alles, was sich aus mehr als einem Element zusammensetzt) müssen Methoden, wie hasNext() und getNext() implementiert werden. So kann sichergestellt werden, dass man in einem Programm eine Baumstruktur genauso abfragen kann, wie eine Liste, ohne das die eine Klasse von der anderen erben muss. Die implementation der getNext()-Methode muss dann sicherstellen, dass die Elemente in einer sinnvollen Reihenfolge ausgegeben werden.
Ein weiteres Beipiel aus Java ist das interface
Comparable. Übertragen auf PHP würde [phpf]usort[/phpf] anders aussehen. Eine Vergleichsfunktion würde in den Elementen des Arrays selbst implementiert werden und nicht "extern" an [phpf]usort[/phpf] übergeben. Das Array dürfte ausschließlich Objekte vom Typ Comparable enthalten.
Vielleicht macht dies die interface's noch ein bisschen klarer, ansonsten weiterfragen!
Gruß hpvw