PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   verebung in klassen (http://www.selfphp.de/forum/showthread.php?t=9889)

waoo 02.03.2005 12:42:43

verebung in klassen
 
hallo leute,
ich habe da ein kleines problem mit vererbung, vielleicht kann mir jemand helfen


mein problem :
ich habe eine elterb klasse die sehr viele kinder klassen hat

ich will nicht jedes mal die eigenschafen in kinder klassen festlegen müssen , deswegen will ich die eigenschaften in der eltern klasse festlegen so dass alle kinder klassen diese eigenschaften zu verfügung stehen haben.

Code:

Code:




class Warenkorb
{
    var $warenkorb;

}

class Datenbank extends Warenkorb
{
    var $datenbank;

    // Konstruktor
    function Datenbank()
    {
        $this -> datenbank = "String in Datenbank.n";
    }

}

// Und hier das Ganze aufrufen
$shop =& new Warenkorb();
$shop->warenkorb = "test";

$shop =& new Datenbank();
print $shop -> datenbank;
print $shop -> warenkorb;

nur das klappt iregend wie nicht


vielen dank im vorraus

|Coding 02.03.2005 14:32:15

AW: verebung in klassen
 
moin,

du musst ein object der childclass erstellen um auf die parentclass zugreifen zu können und nicht von beiden classes.

PHP-Code:

$shop = new Datenbank();
$shop->warenkorb "test"
print 
$shop->datenbank;
print 
$shop->warenkorb


waoo 02.03.2005 14:36:30

AW: verebung in klassen
 
hi vielen dank für die schnell antwort,

hmm, das würde ja heissen, dass ich für jede child klasse die eigenschaften neu mit geben muss?


vielen dank im vorrauas

|Coding 02.03.2005 15:09:07

AW: verebung in klassen
 
nein. sorry, hatte mich etwas geschwollen ausgedrückt.

also:
so wie du es gemacht hast, kann das nicht funzen, weil du $shop mit der zweiten instanz überschrieben hast. du müsstest es also so machen:
PHP-Code:

$parent = new Warenkorb();
$parent->warenkorb "test";

$child = new Datenbank();
print 
$child->datenbank;
print 
$parent->warenkorb

es ist in diesem falle nur wenig sinnvoll zwei instanzen zubilden, weil eine instanz der childclass reicht, um zugriff auf eine eigenschaft/methode der parentclass zubekommen.

ist die instanz einer childclass gebildet, so ist die parentclass ebenfalls verfügbar.


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:17:08 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.