
Собственно, всё гениальное просто.

Попробую с Лимпом развить данную темку, хоть и сам в категории "начинающие". =)
---------------------------------
Итак, поговорим о перегрузке методов. Всем, знающим пых, известно, что функции нельзя написать вот так:
function MyFunc();
function MyFunc($a);
function MyFunc($a, $b);
function MyFunc($a, $b, $c);по причине того, что нельзя задавать одно и то же имя разным функциям. Но что делать, если очень надо принимать в функцию разные данные. То такие, то сякие.

Тут на помощь приходит ООП. Есть там такая штучка магическая, называется __call, он запускается автоматически, когда мы вызываем метод которого нет.
Если метод (он же функция, если вне класса) не инициализирован, то с помощью __call мы можем принять имя функции и её свойства и делать с ними всё, что душе угодно. Эдакое "эмулирование" перегрузки функций, что в пыхе невозможно.
Делается это так:
//Создаём класс
class name {
   //В $name придёт имя функции, а в $array все значения в формате массива
   function __call($name, $array){
   //Внутри этой функции мы уже можем делать с полученными данными всё, что захотим
  }
}Теперь, если мы вызовем несуществующую функцию как объект, с необходимыми свойствами, то этот момент будет у нас "под контролем".
//Создаём класс
class name {
   //В $name придёт имя функции, а в $array все значения в формате массива
   function __call($name, $array){
   //Внутри этой функции мы уже можем делать с полученными данными всё, что захотим. Можем например вывести ошибку.
   echo "Функция $name не существует!!!";
  }
}
//Вызываем метод, которого нет, автоматически вызывается __call
$something->funcTiOn('Gary', '26', 'Охранник');Метод __call можно использовать, например, для самоконтроля. Все мы человеки и можем ошибиться (особенно если делать сайт на ядре, классах и куче функций как ДжонЦМС). Очень легко запутаться или опечататься, в случае ошибочного написания какого либо метода мы узнаем где "косяк".

Так же если работает команда. В таком случае даже классы лучше использовать "абстрактные", создавать "интерфейсы".
 
                        
.gif) .
.
 
                         ).
). 
            