0

在以下脚本中,我声明了两个名称相同但签名不同的方法。但我在声明时收到错误: 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);
4

1 回答 1

10

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

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

于 2013-02-19T02:30:27.873 回答