当我声明具有相同名称但签名不同的2个方法时,为什么会出现错误?

时间:2013-02-19 02:29:02

标签: php polymorphism

在以下脚本中,我声明了两个具有相同名称​​ 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);

1 个答案:

答案 0 :(得分:10)

PHP!=(Java,C ++,C#,VB.Net)

尽管PHP大量借用Java,但两者(和其他OOP语言)之间存在一些重大差异。一个重要的是你不能使用具有不同参数的相同名称的方法。你要么: