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

sap*_*Pro 0 php polymorphism

在下面的脚本中,我声明了两个具有相同名称的方法计算但不同的签名.但我在申报时得到错误: 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);
Run Code Online (Sandbox Code Playgroud)

Joh*_*nde 10

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

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