php 设置函数参数类型,如何覆盖已设置参数类型提示的php函数?

我正在尝试使用自己的功能扩展软件包.但是,程序包代码在函数调用中具有对作为程序包一部分的其他类的类型提示.

我只是在寻找一种修改代码的方法.

我试图更改代码以使用接口和摘要,但是我似乎无法阻止“类声明….必须与”兼容的错误.

简而言之,这就是我要做的事情.

程序包具有这种类型的设置.

class ClassA {}

class ClassB {

public function makeClassA(ClassA $classA) : ClassA

{

return $classA;

}

}

这就是我想要做的.

class ClassANew {}

class ClassC extends ClassB {

public function makeClassA(ClassANew $classA) : ClassANew

{

return $classA;

}

}

我收到以下错误,

“PHP Fatal error: Declaration of ClassC::makeClassA(ClassANew $classA): ClassANew must be compatible with ClassB::makeClassA(ClassA $classA): ClassA”

我知道我可以分叉代码并从ClassB中删除锁定的classA,但是我试图不这样做.

如果我要分叉代码,那么我研究了如何保持原始代码的前提.因此,我尝试将ClassB中的ClassA引用更改为ClassAInterface,但出现相同的错误.

我想做的事可能吗?

解决方法:

不,这是不可能的.

标签:overwrite,hint,php,class

来源: https://codeday.me/bug/20191108/2005829.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值