ホームページ >バックエンド開発 >PHPチュートリアル >PHP での Java モードのオーバーロード
PHP での Java ウェイのオーバーロード
場合によっては、可変長引数を使用して同じメソッドを呼び出すことができると便利です。 PHP ではオプションのパラメーターをデフォルト値で定義できるため、これが可能になります。ブランド Web サイトの構築: http://www.ucantech.com/
php5 でこのメソッドのオーバーロードを実装するには、__call() を使用できます。例を見てみましょう。オーバーロードされた動作を使用する場合は、それを抽象親クラスに置きます。
Php コード
抽象クラス OverloadableObject{
function __call($name, $args){
$method = $name."_".count($args);
If(!method_exists($this,$method)){
throw new Exception("未定義メソッドの呼び出し".get_class($this)."::$method");
} }
return call_user_func_array(array($this,$method),$args);
$method = $name."_ ".count($args);
の行を表示しますコードが定義されています。未定義のメソッドが呼び出された場合、__call() メソッドは、元のメソッドとパラメーターの数をアンダースコアで区切った名前で構成される新しいメソッドを生成します。次に、新しく生成されたメソッド名を使用して変更されたメソッドを呼び出し、元のパラメーターを一緒に渡します。
multiply というオーバーロードされたメソッドを使用したい場合は、2 つまたは 3 つの引数を指定して呼び出し、それぞれの場合に応じて動作します。それぞれ、multiply_2 と multiply_3 の 2 つのメソッドを使用できます
Php コード
class Multiplier extends OverloadableObject{
function multiply_2($one,$two){
return $one*$two;
}
function multiply_3($one, $two,$three){
return $one*$two*$three;
}
}
このコードを使用するには、multiply メソッドは 2 つまたは 3 つのパラメータを受け取ります。 。
$multi = new Multiplier;
echo $multi->multiply(5,6)."n";
echo $multi->multiply(5 ,6,7).「ん」(fblww-0112)