В Java у нас есть функция перегрузки метода, которая очень полезна для Singletons. Например, у меня есть два разных метода getInstance, public static, которые ведут себя по-разному на основе полученных параметров:
public static Currency getInstance(String currencyCode) public static Currency getInstance(Locale locale)
Можем ли мы сделать это в PHP?
Тип аргумента можно определить во время выполнения:
function getInstance($currency) { if (is_string($currency)) { $currency = lookupLokale($currency); } // do something with the $currency object }
В php5.3 + (php5.0 + для нестатических методов) вы также можете использовать перегрузку метода php для реализации Java-подобной семантики. Однако перегрузка ООП, скорее всего, вызовет беспорядочный код, и вы должны предпочесть вышеупомянутое решение в методе.
В большинстве случаев это более понятно, если вы просто используете два разных имени метода.
Давай, по крайней мере, попробуй в Google :). Это отличная документация об этом. Например, на сайте PHP ITSELF:
EDIT: новая ссылка, описывающая перегрузку метода
http://www.dinke.net/blog/en/2007/08/01/method-overloading-in-php5/
Теперь у меня такая же перегрузка.