overload

(PHP 4 >= 4.3.0)

overloadEnable property and method call overloading for a class

Описание

void overload ( string $class_name )

The overload() function will enable property and method call overloading for a class identified by class_name.

Список параметров

class_name

The overloaded class name, as a string

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

See an example in the introductory section of this part.

Коментарии

creating two methods with the same name won't work for sure (maybe in next versions i hope)
but for now all i could come up with something that looks like overloaded functions from the outside but still makes it a bit difficult for the one who's coding the actual class
as we can see in the code bellow i've used a default value for the $name argument, so when the Test() method is called with no arguments the $name argument is by default passed as NULL (or any value you wanna pass)
<?php

class Test
 
{
  function 
Test($name=NULL)
    {
    echo 
'Hello, ';
    if(
$name)
      {
      echo 
$name.'<br>';
      }
    else
      {
      echo 
'stranger<br>';
      }
    }
  }
 
$t1=new Test();                            // Output : Hello, stranger
$t2=new Test('Osman Kalache');     // Output : Hello, Osman Kalache

?>

the bad side of this trick is that you have to test your arguments (imagine how many IFs and ELSEs you get if you had just 5 arguments)
but still makes your classes easy to use.
2009-01-22 09:22:43
http://php5.kiev.ua/manual/ru/function.overload.html
PHP does not have method overloading as with other languages. The only option is to use optional arguments.

This is a better testing scenario as described in the other post:

<?php
 
class Test
   
{
       function 
Test($name "stranger")
       {
           echo 
"Hello, $name";
       }
   }

$t1=new Test();                            // Output : Hello, stranger
$t2=new Test('Osman Kalache');     // Output : Hello, Osman Kalache

?>
2012-04-07 01:07:59
http://php5.kiev.ua/manual/ru/function.overload.html

    Поддержать сайт на родительском проекте КГБ