ホームページ >バックエンド開発 >PHPチュートリアル >PHP オブジェクト指向メソッドのオーバーロードの 2 つのバージョンの比較_PHP チュートリアル
複数の関数は同じ名前を使用しますが、呼び出し時にパラメーターのリスト、つまりパラメーターの数または (および) データ型が異なる場合があります。メソッド名は同じでも、対応する関数はそれに応じて自動的に呼び出されます。パラメータリスト。
PHP4 はいくつかの単純なオブジェクト指向関数のみを実装していますが、PHP5 のオブジェクトのサポートは将来的にはさらに強力になるでしょう。
ポリモーフィック実装の場合、PHP4 はオーバーライドのみをサポートしますが、オーバーロードはサポートしません。ただし、いくつかのトリックを使用して、オーバーロードの実装を「シミュレート」することができます。
PHP5 は上書きとオーバーロードをサポートできますが、オーバーロードの具体的な実装は他の言語とは依然として大きく異なります。
1. PHP4 での「オーバーロード」のシミュレーション
次のコードを試してください:
//パラメータの数に応じて異なるメソッドの実行を選択します (PHP4 (ポリモーフィック 1) 種類の「オーバーロード」のシミュレーション)
クラス Myclass
{
function Myclass()
{
$method = "メソッド" . func_num_args();
$this->$method()
}
関数メソッド1($x)
echo "method1";
}
function method2($x, $y)
{
echo 'method2';
}
}
//このクラスを使用すると、ユーザーにとって有益です。
$obj1 = new Myclass('A'); //method1 が呼び出されます
$obj2 = new Myclass('B','C'); //method2 が呼び出されます
;コンストラクターで func_num_args() 関数を使用してパラメーターの数を取得し、メソッド 1 またはメソッド 2 メソッドを自動的に実行することで、関数 func_get_arg(i) と func_get_args() を組み合わせて上記の例
2 を改善できます。 PHP5. オーバーロードの使用
まず、次の例を見てください:
コードをコピーします