[PHP] Probleme mit der Vererbung von Variablen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von evo`, 31. Oktober 2007 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 31. Oktober 2007
    Probleme mit der Vererbung von Variablen

    Hallo,

    ich bin gerade dabei eine Anwendung mit PHP5 zu realisieren. Das ganze auch noch objektorientiert und nun stehe ich vor einem seltsamen Problem. Am besten ihr testet das kleine Script selber mal und verratet mir wo mein Denkfehler ist. Danke schon mal im voraus.

    PHP:
    <? php

    class  foo  {
        protected 
    $array  = array( 'index'  =>  'key' ,
                                 
    'second'  =>  0 );
        
        protected 
    $bar ;
        
        public function 
    __construct () {
            
    $this -> array [ 'second' ] =  1234567890 ;
            
    $this -> bar  = new  bar ();
        }
    }

    class 
    bar  extends  foo  {

        public function 
    __construct () {
            
    print_r ( $this -> array );
        }

    }

    $foo  = new  foo ();

    ?>
    evo`
     
  2. 31. Oktober 2007
    AW: Probleme mit der Vererbung von Variablen

    Was möchtest du denn mit den zwei Klassen überhaupt erreichen?
     
  3. 31. Oktober 2007
    AW: Probleme mit der Vererbung von Variablen

    Eigentlich spielt das denke ich keine Rolle, aber okay...

    Die Klasse foo beinhaltet Methoden die requests bei einem Webserver absetzt. Die Klasse bar hat spezielle Funktionen, die das ganze etwas spezieller gestalten kann. Wenn ich von aus der Klasse bar eine Methode aufrufe, funktioniert das nur wenn diese ebenfalls alle gültigen Variablen hat (in diesem Fall das array mit dem index second).

    Klar ich könnte die Variablen auch im Konstruktor übergeben, allerdings könnte ich mir dann erstens die Vererbung sparen und zweitens müsste ich die gleichen Variablen nochmals definieren.
     
  4. 31. Oktober 2007
    AW: Probleme mit der Vererbung von Variablen

    Würde das ganze so lösen:
    PHP:
    <? php

    class  foo  {
        protected 
    $array  = array( 'index'  =>  'key' ,
                                 
    'second'  =>  0 );

        public function 
    setVar () {
            
    $this -> array [ 'second' ] =  1234567890 ;
        }
    }

    class 
    bar  extends  foo  {

        public function 
    __construct () {
            
    $this -> setVar ();
            
    print_r ( $this -> array );
        }

    }

    $bar  = new  bar ();

    ?>
    Wie du siehst, enthält bar jetzt auch das Array mit neuem Wert. Du kannst Methoden, die in foo definiert wurden einfach über $bar->Methode(); aufrufen. Ich hoffe, so etwas wolltest du haben?
     
  5. 31. Oktober 2007
    AW: Probleme mit der Vererbung von Variablen

    Zwar ist das nicht so ganz der gewünschte Lösungsweg. Ich habe das ganze jetzt anders gereglt. Ich rufe jetzt die Methode von bar so auf: bar::methode();. Damit funktionierts und ist von der Logik des restlichen Quellcodes verständlich.

    Danke für deine Hilfe
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.