PHP は func_get_args 関数と func_num_args 関数を使用して、関数のオーバーロード例、 funcnumargs を実装します
この記事の例では、PHP が func_get_args 関数と func_num_args 関数を使用して関数のオーバーロードを実装する方法を説明します。皆さんの参考に共有してください。具体的な手法の分析は次のとおりです:
PHP を勉強している友人は、PHP 自体に関数のオーバーロードがないこと、ましてや Java や C のような使い方がないことを知っています。しかし、さらに深く見てみると、次の関数で func_get_args() と func_num_args() を使用できることがわかります。 PHP の関数は関数のオーバーロードを実装します。これらの 2 つの関数は関数のオーバーロードを実装します。
1. デフォルトのパラメーター。関数内の場合、これは必須パラメーターではなく、対応するデフォルト値を追加すると、対応する関数が完成します。
コードをコピーします コードは次のとおりです:function overloadFun($param1, $param2 = '1',$param3 = true)
{
// 何かをする
}
関数 func_get_args() と call_user_func_array() を使用すると、PHP コードは次のようになります:
コードをコピーします コードは次のとおりです:function rewrite() {
$args = func_get_args();
if(func_num_args() == 1) {
func1($args[0]);
} else if(func_num_args() == 2) {
func2($args[0], $args[1]);
}
}
関数 func1($arg) {
エコー $arg
}
関数 func2($arg1, $arg2) {
echo $arg1, ' ', $arg2;
}
rewrite('PHP'); // func1 を呼び出します
rewrite('PHP','China') // func2 を呼び出します
2. デフォルト値を使用して、入力に基づいて必要な結果を取得します。コードは次のとおりです。
コードをコピーします
コードは次のとおりです:
function test($name="Xiao Li",$age="23"){
エコー $name." ".$age
}
テスト();
エコー "
";
テスト("a");
エコー "
";
テスト("a","b");
3. __call($name, $arg) 関数を使用して処理します。 コードは次のとおりです。
コードをコピーします
コードは次のとおりです:
クラスオーバーロード{
関数 __call($name, $args)
{
if($name=='overloadFun')
{
スイッチ(カウント($args))
{
ケース 0: $this->overloadFun0();break;
ケース 1: $this->overloadFun1($args[0]);
ケース 2: $this->overloadFun2($args[0], $args[1]);
デフォルト: //何かをする
休憩
}
}
}
関数 overloadFun0()
{
エコー0;
}
関数オーバーロードFun1($var1)
{
$var1 をエコーします。
}
関数オーバーロードFun2($var1,$var2)
{
$var1+$var2 をエコーします。
}
}
$test=新しいオーバーロード();
$test->overloadFun()."
"。
$test->overloadFun(1)."
"。
$test->overloadFun(1,2)."
";
?>
このようなメソッドを使用すると、単純な関数のオーバーロードを実装できますが、注意すべき点の 1 つは、PHP は弱く型指定された言語であるため、Java や C++ などの強く型指定された言語のようにオーバーロードを直接実装できないということです。現時点では、将来のバージョンで利用可能になるかどうかはわかりません。
この記事が皆さんの PHP プログラミング設計に役立つことを願っています。
http://www.bkjia.com/PHPjc/910603.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/910603.html技術記事 PHP は func_get_args 関数と func_num_args 関数を使用して関数のオーバーロードの例、funcnumargs を実装します。 この記事では、PHP が func_get_args 関数と func_num_args 関数を使用して関数のオーバーロードを実装する方法について説明します。シェア...