PHPにはC++のような関数の多重定義は実装されていません。
そこでデフォルト引数の機能を使って擬似的に関数の多重定義を実現してみました


function hoge ($a, $b = 0) {

 if ($b === 0) {
  // hoge($a) が指定されたことにする
 }

・・・
}

このような実装にすれば

hoge("ahya");
hoge("ahya", "hoge");

のように擬似的に関数の多重定義を実現できると思うのですがこのやり方はありでしょうか?
もっとスマートな方法があるようでしたら教えてください。