OOP:: per >parent::< auch variableninh. zugreifen?
Robbe
- php
Hallo selfer,
Ich versuch in einer abgeleiteten Klasse auf eine Variable der Hauptklasse zuzugreifen, um sie nochmal extra in der abgeleiteten Klasse zu definieren.. ich finde da lässt sich besser in der abgeleiten Kl. sehen welche Vars hier verwendet werden sollen, es ließt sich einfach bessa.
lt. php.net steht bei parent das man auch auf Variablen zugreifen kann, doch leider hab ich bis jetzt dazu noch kein Beispiel gesehen und es funktioniert tut es auch net..
abgeleitete Klasse (bsp):
class globalset extends DBcon {
var $_OSsystem;
function globalset() {
/* Konstruktor */
$this->_OSsystem = parent::MAIN_OPsys;
echo "-->".$this->_OSsystem;
}
im offiziellen php-Handbuch heisst es wörtl.:
"Wahrscheinlich wollen Sie auch Code schreiben, der sich auch auf >>Variablen und Funktionen<< in Basisklassen bezieht. Dies gilt speziell dann, wenn Ihre abgeleitete Klasse eine Verfeinerung oder Spezialisierung von Code in Ihrer Basisklasse ist.
.. usw ..
Warum gjeiht dat net??
mfg, RObbe
Hello,
welche PHP-Version?
@Forumsgeister: Sollten wir nicht einen eigenen Themenbereich für PHP5 haben?
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
das ist kein privileg von php5.
das gibts schon lange.
Hallo,
class base
{
var $baseVar;
}
class child extends base
{
var $childVar;
function echoVars()
{
echo $this->baseVar;
$this->childVar = $this->baseVar;
echo $this->childVar;
}
}
$child = new child;
$child->baseVar = "test";
$child->echoVars();
Das Ganze gibt
testtest
aus.
Und das macht ja nun auch Sinn. Du kannst, denke ich, nicht explizit auf die Parent-Variable zugreifen, da diese eben bereits vererbt ist.
in deinem Beispiel sollte es dann
$this->_OSsystem = $this->MAIN_OPsys;
heissen.
Fertig.
Gruß, Stefan
Hallo selfer,
Ich versuch in einer abgeleiteten Klasse auf eine Variable der Hauptklasse zuzugreifen, um sie nochmal extra in der abgeleiteten Klasse zu definieren.. ich finde da lässt sich besser in der abgeleiten Kl. sehen welche Vars hier verwendet werden sollen, es ließt sich einfach bessa.
lt. php.net steht bei parent das man auch auf Variablen zugreifen kann, doch leider hab ich bis jetzt dazu noch kein Beispiel gesehen und es funktioniert tut es auch net..
abgeleitete Klasse (bsp):
class globalset extends DBcon {
var $_OSsystem;
function globalset() {
/* Konstruktor */
$this->_OSsystem = parent::MAIN_OPsys;
echo "-->".$this->_OSsystem;
}im offiziellen php-Handbuch heisst es wörtl.:
"Wahrscheinlich wollen Sie auch Code schreiben, der sich auch auf >>Variablen und Funktionen<< in Basisklassen bezieht. Dies gilt speziell dann, wenn Ihre abgeleitete Klasse eine Verfeinerung oder Spezialisierung von Code in Ihrer Basisklasse ist.
.. usw ..
Warum gjeiht dat net??
mfg, RObbe
Hallo Stefan,
Danke für deine schnelle Antwort, ich hatte hier eindeutig einen Verständnissfehler,
DANGE DIR =).
das überschreiben von variablen oder methoden ist kein privileg von php, sondern im konzept der oop.
zudem würde ein statischer zugriff auf eine instanzvariable auch nicht funktionieren, wenn keine instanz angelegt wurde.
es würde zumindest einer static variablen bedürfen, welche der compiler oder interpreter im programmcode hat, um auf diese mit statischer methode zuzugreifen.