Php 当我声明两个具有相同名称但不同签名的方法时,为什么会出现错误?
在下面的脚本中,我声明了两个名称相同但签名不同的方法。但我在声明时遇到一个错误:Php 当我声明两个具有相同名称但不同签名的方法时,为什么会出现错误?,php,polymorphism,Php,Polymorphism,在下面的脚本中,我声明了两个名称相同但签名不同的方法。但我在声明时遇到一个错误: 致命错误:无法在第7行的/opt/lampp/htdocs/Tester.php中重新声明Tester::calculate()。为什么呢?Php不支持这种多态性 <?php class Tester { public function calculate() { echo 2*2; } public function calculate($var_1,$var_2)
致命错误:无法在第7行的/opt/lampp/htdocs/Tester.php中重新声明Tester::calculate()。为什么呢?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);
PHP!=(java,C++,C语言,vb.net)< /P>
尽管PHP大量借鉴了Java,但这两种语言(以及其他OOP语言)之间存在一些很大的差异。一个大问题是,不能让方法使用相同的名称和不同的参数。您需要:
- 使用
- 使用不同的方法命名
- 扩展父/抽象类(也称为),然后可以使用
公共函数计算($var\u 1=2,$var\u 2=2)
?:)PHP的可能副本不是从Java借用的。PHP借鉴C/C++,Java借鉴C/C++。PHP和Java几乎同时发布,应该被视为“兄弟”语言。