13/11/18 15:12:26.33
>>239
PHPのような動的型付け言語(インタープリター)では、基本的にオーバーロード(多重定義)という仕組みはない。
PHPの場合オーバーロードを実現するために、func_get_argsなんかを使って条件分岐でやる必要がある。
ようは引数に渡す型の種類や引数の数は違えど、処理内容が同じになる場合とかに使うわけだけど、
何が嬉しいかというと、メソッド名(関数名)を1つだけ覚えとけばいいとか、メソッド名を考えるのに困らないとか、
まぁそんなところ。(多重定義否定派やそれがよくないと感じる人もいる)
オーバーロードを使わない場合、>>240のあげるtoStringは、
intToString($int)とかboolToString($bool)とか冗長な名前でごった返すことになる。
ただPHPではfunc_get_argsでやると複雑になるので、そういう実装を取る人も多い。
URLリンク(php.net)
ここで書かれているPHPのオーバーロードというのは、
注釈にも書いてる通り他の言語のオーバーロードとは意味あいが違うので注意。