phpbar.de logo

Mailinglisten-Archive

[php] Einstieg in die OOP

[php] Einstieg in die OOP

Carsten Witt carsten_witt at gmx.de
Fre Jan 28 11:58:35 CET 2005


Moin Lars,

> Aber ich will ja in der neuen Klasse auf Funktionen mehrerer Klassen
> zurückgreifen, nicht nur wie im Beispiel DB und phpmailer. 
Dafür ist aggregate() da:

<? # Pseudocode, PHP4
class BaseClass { }

class AnotherBaseClass {
  function AnotherBaseClass() { } #Konstruktor
  function Ausgabe() { }
}

class MyClass {}

# Objekt instantiieren
$meins = &new MyClass();

# Methoden, Eigenschaften anderer Klassen anbauen
aggregate($meins, "BaseClass");
aggregate($meins, "AnotherBaseClass");

# Methoden und Eigenschaften verwenden
$meins->Ausgabe();
?>

> In früheren PHP-Versionen hat man das bestimmt doch auch irgendwie
> gemacht.
ja, "irgendwie" triffts. Die Dokumentation zu aggregate() ist imho recht
dünn, was aber sicher daran liegt, dass sie "experimentell" ist. Ich
persönlich habe mit aggregate() keine Probleme (PHP4.3.9 auf
Apache2/W2K). Zu beachten ist, daß die Konstruktoren nicht mitvererbt
werden, so daß $meins anschließend keine Methode (Du sprichst von
"Funktion") AnotherBaseClass() besitzt.

> Gibt es da dann eigentlich Unterschiede zwischen 4 und 5?
Leider ist diese Funktion in PHP5 nicht mehr verfügbar (weil es ja
"richtige" Mehrfachvererbung gibt), so daß du deine Skripte während der
Migration auf PHP5 wohl umfassend umbauen musst.

Grüße
Carsten.


-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.300 / Virus Database: 265.8.1 - Release Date: 27.01.2005


php::bar PHP Wiki   -   Listenarchive