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

|