我创建了一个名为iMapper的界面.我希望所有的mappers文件都实现该接口.
但是每个映射器都会指定参数类型.
例:
interface iMapper
{
public function insert($obj);
public function update($obj);
public function delete($obj);
}
class CarMapper implements iMapper
{
public function insert(Car $obj){}
public function update(Car $obj){}
public function delete(Car $obj){}
}
该代码生成以下错误:
Declaration of CarMapper::insert() must be compatible with that of iMapper::insert()
他们是使接口与CarMapper兼容的一种方法吗? (我不想更改映射器.)
谢谢
解决方法:
“但是每个映射器都会指定参数类型.” -我不得不说那是不可能的.
接口必须实现.这是什么意思?所有实现类都必须能够使用未指定参数的方法-接口内部方法所需的参数.
在方法主体中调用instanceof是某种出路,但这并不是一个好方法.
标签:interface,parameters,php
来源: https://codeday.me/bug/20191102/1993472.html