2008/5/2 Philip Thompson <[EMAIL PROTECTED]>:
> 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