2008/5/2 Philip Thompson <philthathril@xxxxxxxxx>: > Hi all. I have several classes. Within each class, a new class is called. Is > there a way to assign a function in a *deeper* class to be called in the > first class? Example to follow...... > > <?php > class A { > function __construct () { > $this->b = new B (); > // I want to do the following. This does not work, of course. > $this->doSomething = $this->b->c->doSomething; > } > } > > class B { > function __construct () { > $this->c = new C (); > } > } > > class C { > function __construct () { } > function doSomething () { echo "¡Hi!"; } > } > > $a = new A (); > // Instead of doing this, > $a->b->c->doSomething(); > > // I want to do this. > $a->doSomething(); // ¡Hi! > ?> > > Basically, it's just to shorten the line to access a particular function.. > But, is it possible?! Inheritance - http://uk.php.net/extends class A { function methodOfA() {} } class B extends A {} B::methodOfA(); (use sparingly - too much inheritance results in a tightly-coupled hierarchy of classes, which are brittle and hard to re-use). Or simply express the method in the interface of the exposed class: class A { function methodOfA() {} } class B { function methodOfA() { A::methodOfA(); } } b::methodOfA(); -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php