関数のオーバーロードと上書き (書き換えとも呼ばれます) は、PHP の OOP (オブジェクト指向) 機能です。関数のオーバーロードでは、複数の関数が同じメソッド名を持つことができますが、パラメーターの数や型が異なります。ただし、関数をオーバーライドする場合、複数の関数が同じメソッド名とパラメータ数を持つことになります。
関数のオーバーロード: 関数のオーバーロードには同じ関数名が含まれており、パラメーターの数と種類に応じて異なるタスクを実行します。
たとえば、半径を指定してある形状の面積を見つけるには、高さと幅が指定されている場合は円の面積を返し、次に長方形の領域とその他の領域を返す必要があります。与えられた。他の OOP 言語と同様に、関数のオーバーロードはネイティブ メソッドでは実行できません。
PHP では、関数のオーバーロードはマジック メソッド __call() を利用して行われます。この関数は関数名とパラメータを受け取ります。
関数オーバーロードの例:
<?php // 说明:PHP程序说明函数。 // PHP中的重载 //创建一个类型为shape的类 class shape { // __call() 是一个魔术方法 //函数名和参数 function __call($name_of_function, $arguments) { // 它将匹配函数名 if($name_of_function == 'area') { switch (count($arguments)) { // 如果只有一个参数 //圆的面积 case 1: return 3.14 * $arguments[0]; // 如果有两个参数,则面积为矩形; case 2: return $arguments[0]*$arguments[1]; } } } } //声明Shape类型对象 $s = new Shape; echo($s->area(2)); echo "<br>"; // 调用矩形的area方法 echo ($s->area(4, 2)); ?>
出力:
6.28 8
関数オーバーライド: 関数オーバーライドとその他の OOP プログラミング言語同じです。関数のオーバーライドでは、親クラスと子クラスの関数名とパラメーターの数が同じである必要があります。これは、子クラスの親メソッドを置き換えるために使用されます。オーバーライドの目的は、親クラス メソッドの動作を変更することです。同じ名前と同じパラメータを持つ 2 つのメソッドはオーバーライドと呼ばれます。
関数カバレッジ (書き換え) の例:
<?php //PHP程序实现 //函数覆盖 //这是父类 class P { // 父类函数demo function demo() { echo "Parent"; } } // 这是子类 class C extends P { // 覆盖demo方法 function demo() { echo "<br>Child"; } } $p = new P; $c= new C; // 打印parent $p->demo(); // 打印child $c->demo(); ?>
出力:
Parent Child
この記事は、PHP における関数カバレッジと関数のオーバーロードについて説明します。困っている友達に役立つことを願っています!
以上がPHP の関数カバレッジと関数のオーバーロードとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。