ホームページ >バックエンド開発 >PHPチュートリアル >PHP での Java モードのオーバーロード

PHP での Java モードのオーバーロード

WBOY
WBOYオリジナル
2016-06-13 13:19:33722ブラウズ

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)

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHPのイニシャル次の記事:PHPのイニシャル