Robbe: OOP:: per >parent::< auch variableninh. zugreifen?

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

  1. Hello,

    welche PHP-Version?

    @Forumsgeister: Sollten wir nicht einen eigenen Themenbereich für PHP5 haben?

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. das ist kein privileg von php5.

      das gibts schon lange.

  2. 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

    1. Hallo Stefan,

      Danke für deine schnelle Antwort, ich hatte hier eindeutig einen Verständnissfehler,

      DANGE DIR =).

      1. 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.