gpt4 book ai didi

php - 单个抽象函数/抽象重载的多个方法签名

转载 作者:可可西里 更新时间:2023-11-01 01:09:29 24 4
gpt4 key购买 nike

我有一个抽象类,用于将数据从一个数据库移动到另一个数据库,有时创建基本条目所需的数据是不同的,因为目标数据库中存在遗留表,其中包含用于在其中定位数据的说明来源。显然简化了,这就是问题所在:

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

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

最佳答案

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

示例

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 - 单个抽象函数/抽象重载的多个方法签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4450304/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com