PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php-单个抽象函数/抽象重载的多种方法签名大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个抽象类,用于将数据从一个数据库移动到另一个数据库,有时创建基本条目所需的数据有所不同,这是由于目标数据库中存在遗留表,其中包括用于在源中定位数据的指令.显然,这是问题所在:

abstract class foo
{
    protected abstract function createBaseEntry($id);
}

有时,我只需要将一个ID传递给此函数,但是在某些情况下,我需要传递两个ID.当然,如果具体方法的实际方法签名与抽象方法不匹配,PHP将引发致命错误并暂停执行.除了使用Null预定义最大数量的参数并修改扩展该参数的每个具体类之外,还有什么方法可以解决此问题?

解决方法:

如果您不能/不想change the method signature to have an optional second argument,则可以在运行时使用func_num_args()func_get_args()确定参数数量.

function foo()
{   
    $num  = func_num_args();
    $args = func_get_args();
    var_dump($num, $args);
}

foo(1, 2, 3);   

输出(codepad)

int(3) 
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } 

当签名中定义了参数时,这也将起作用.

大佬总结

以上是大佬教程为你收集整理的php-单个抽象函数/抽象重载的多种方法签名全部内容,希望文章能够帮你解决php-单个抽象函数/抽象重载的多种方法签名所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: