Re: Assigning functions

From: Date: Fri, 02 May 2008 19:22:10 +0000
Subject: Re: Assigning functions
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-273817@lists.php.net to get a copy of this message
2008/5/2 Philip Thompson <philthathril@gmail.com>: > 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();

« previous php.general (#273817) next »