在以下脚本中,我声明了两个具有相同名称 calculate 但不同签名的方法。但我在声明时遇到错误:
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);
答案 0 :(得分:10)
PHP!=(Java,C ++,C#,VB.Net)
尽管PHP大量借用Java,但两者(和其他OOP语言)之间存在一些重大差异。一个重要的是你不能使用具有不同参数的相同名称的方法。你要么: