PHPでの関数のオーバーロードとオーバーライドとは?


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"
?>


例:function overriding in php