次のスクリプトでは、 calculateという名前は同じだが署名が異なる2 つのメソッドを宣言しています。しかし、宣言でエラーが発生します:
Fatal error: Cannot redeclare Tester::calculate() in /opt/lampp/htdocs/tester.php on line 7
. 何故ですか ?Php はこのタイプのポリモーフィズムをサポートしていませんか?
<?php
class Tester {
public function calculate() {
echo 2*2;
}
public function calculate($var_1,$var_2) {
echo $var_1*$var_2;
}
}
$obj = new Tester();
$obj->calculate();
echo "<br />";
$obj->calculate(5,4);