Re: method overloading in a class

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

 



Would something like this work for you?

class foo
{

   public function bar($arg1, $arg2, $arg3=null)
  {

     if (isset($arg3)){
     {
        return $this->_bar3($arg1, $arg2, $arg3);

     } else {
        return $this->_bar2($arg1, $arg2);

     }

  }


also you may want to look into the func_get_args function.



Chris.


On Wed, Aug 18, 2010 at 12:23 PM, Ashley Sheridan
<ash@xxxxxxxxxxxxxxxxxxxx>wrote:

> Hi list,
>
> I know that some languages such as C++ can overload functions and
> methods by declaring the method again with a different number of
> arguments, and the compiler internally sorts things out, but I can't
> seem to find a similar way to do this with PHP.
>
> Basically, what I've got at the moment is a class method with 2
> arguments, and I need to be able to overload the method with 3
> arguments. The following which would work in other languages doesn't
> seem to bring any joy in PHP:
>
> class foo
> {
>    public function bar($arg1, $arg2)
>   {
>        // do something with $arg1 & $arg2
>    }
>
>    public function bar($arg1, $arg2, $arg3)
>    {
>        // do something different with all 3 args
>    }
> }
>
> Is there any feasible way of doing this? The method names really need to
> remain the same as they exist as part of a framework, but the arguments
> really server quite different purposes between the two methods, so
> there's no nice way of just merging the two functions without breaking
> the naming conventions, etc used.
>
> Thanks,
> Ash
> http://www.ashleysheridan.co.uk
>
>
>

[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