Перегрузка метода PHP 5.3 (как в Java)

В Java у нас есть функция перегрузки метода, которая очень полезна для Singletons. Например, у меня есть два разных метода getInstance, public static, которые ведут себя по-разному на основе полученных параметров:

public static Currency getInstance(String currencyCode) public static Currency getInstance(Locale locale) 

Можем ли мы сделать это в PHP?

Solutions Collecting From Web of "Перегрузка метода PHP 5.3 (как в Java)"

Тип аргумента можно определить во время выполнения:

 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/

Теперь у меня такая же перегрузка.