![](/img/trans.png)
[英]Declaration of class must be compatible with interface error in telegram bot package
[英]Declaration of class must be compatible with interface
Comparare.php
<?php
interface Comparare{
public function compara(self $a);
}
?>
clasa.php
<?php
class Clasa implements Comparare{
public $v;
public function compara(self $a){
if($this->v < $a->v)
{
return -1;
}
else if($this->v==$a->v)
{
return 0;
}
else
{
return 1;
}
}
function __construct($a){
$this->v=$a;
}
}
?>
test.php
<?php
function __autoload($class_name){
require_once ($class_name) . ".php";
}
function maxim(Comparare $a,Comparare $b){
if ($a->compara($b)<0){
return $b;
}
else {
return $a;
}
}
$x=new Clasa(7);
$y=new Clasa(8);
$max=maxim($x,$y);
echo "maximul este:" . $max;
?>
致命错误:第3行的D:\\ xammp \\ htdocs \\ php \\ clase \\ comparare \\ clasa.php中的Clasa :: compara()声明必须与Comparare :: compara(Comparare $ a)兼容
我使用XAMPP 3.2.2(PHP版本5.5.33)
接口中的self
类型是指接口-在您的类中,它是指类。 那是两种不同的类型。 定义方法时需要使用接口类型名称,以使类型匹配。 在实现接口方法时,签名(包括类型)必须匹配才能实现。
public function compara(Comparare $a) {
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.