1. ホーム
  2. php

[解決済み] phpの関数のオーバーロードとオーバーライドとは何ですか?

2022-06-15 19:43:09

質問

PHPで、関数のオーバーロードと関数のオーバーライドとはどういう意味ですか?また、両者の違いは何ですか?

どのように解決するのですか?

オーバーロード は、類似のシグネチャを持ち、かつ異なるパラメータを持つ関数を定義することです。 オーバーライド は派生クラスにのみ当てはまり、親クラスがメソッドを定義し、派生クラスが オーバーライド そのメソッドをオーバーライドしたい場合です。

PHP では、マジックメソッドを使ってのみメソッドをオーバーロードすることができます。 __call .

の例です。 をオーバーライドする :

<?php

class Foo {
   function myFoo() {
      return "Foo";
   }
}

class Bar extends Foo {
   function myFoo() {
      return "Bar";
   }
}

$foo = new Foo;
$bar = new Bar;
echo($foo->myFoo()); //"Foo"
echo($bar->myFoo()); //"Bar"
?>