PDA

Volledige versie bekijken : Methods uit class halen en gebruiken in een nieuwe class.


Albus
%Europe/Berlin %623 %2009, 15:58
Heyda

Is het mogelijk om de methods van een instantie van een class te gebruiken in de class waar het de instantie gemaakt word. Voorbeeld:


class A {}

class B extends A {
public function output() {
echo 'hello';
}
}

class C {
public function C() {
require_once('classB.php');

new B();
}
}

class usingclassC() {
public function usingclassC() {
$this->c = new c();
$this->c->output();
}
}



Uiteraard heeft elke class zijn eigen bestand en include maar dit is nu gewoon voor het voorbeeld.

Ik weet dat als het volgende werkt:

class C {

public B;

public function C() {
require_once('classB.php');

$this->B = new B();
}
}

class usingclassC() {
public function usingclassC() {
$this->c = new c();
$this->c->b->output();
}
}

Maar ik wil dus de method output rechtstreeks aanhalen via C->output en niet via C->B->output. Hoe kan ik dit doen?

Koen!
%Europe/Berlin %896 %2009, 22:31
Een nieuwe functie 'output' in C maken die de functie van B aanroept. C is immers geen afgeleide van B, dus zomaar een functie van B aanroepen zal niet gaan.

Overigens zou ik erg oppassen als je zulke code ook in het echt gebruikt. Een variabele die dezelfde naam heeft als de klasse waar het een instantie van is ($this->B in je 2e voorbeeld), slordig omgaan met caps, een ouderwetse vorm van constructor gebruiken (lees: niet __construct() gebruiken)... ik weet niet of je buiten je voorbeelden ook zo script, maar ik zeg het maar gewoon even... nette code kan je een boel tijd en hoofdpijn schelen. :)