Re: Assigning functions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux