2016-09-12 2 views
1

Ich habe eine Application Klasse und ich habe auch eine Reihe von separaten Klassen, die es erweitern. Wenn ich eine $variable in der Elternklasse Application, Wie stelle ich es automatisch in seinen Kindern?Wie stelle ich eine Klassenvariable automatisch für ihre untergeordneten Klassen zur Verfügung?

class Application { 
    public $variable; 

    public function __construct() { 
     $this->variable = "Something"; 
    } 
} 

class Child extends Application { 
    public function doSomthing() { 
    $mything = $variable." is cool"; 
    return $mything; 
    } 
} 

Ich weiß, ich global $variable; in meiner doSomthing() Methode setzen kann, aber das ist super langweilig immer ich schreibe in jedem Verfahren zu tun. Gibt es eine Möglichkeit, es dort zu tun, wo es nur für alle meine untergeordneten Klassenmethoden verfügbar ist? Danke.

+1

Verwenden Sie einfach '$ this-> variable' – gmsantos

+0

Haben Sie das versuchen, Elternerklärung? [Eltern ::] (http://php.net/manual/en/keyword.parent.php) –

Antwort

1

Sie haben nur eine Eigenschaft mit dem Namen variable in Ihrer Application Klasse in __construct Methode festgelegt.

Wenn die Eigenschaft visibility permits (zB öffentliche oder geschützte ist), können Sie eine Eigenschaft potato in jedem Kinder-Klassen-Methode mit $this->potato zugreifen:

class Application { 
    public $variable; 

    public function __construct() { 
     $this->variable = "Something"; 
    } 
} 

class Child extends Application { 
    public function doSomthing() { 
    $mything = $this->variable." is cool"; 
    return $mything; 
    } 
} 
Verwandte Themen