0

次のスクリプトでは、 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);
4

1 に答える 1

10

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

PHP は Java から多くを借用していますが、この 2 つ (および他の OOP 言語) の間にはいくつかの大きな違いがあります。大きな問題の 1 つは、異なるパラメーターを持つ同じ名前を使用するメソッドを作成できないことです。次のいずれかが必要です。

于 2013-02-19T02:30:27.873 に答える