gpt4 book ai didi

php - 在抽象函数中将参数设为可选

转载 作者:行者123 更新时间:2023-12-05 06:26:25 25 4
gpt4 key购买 nike

假设我有这些类(class):

abstract class Car
{
abstract public function handle(array $data);
}

class CarA extends Car
{
public function handle(array $data)
{
echo $data['color'];
}
}

$car= new CarA();
// Here I can pass args as an array
$car->handle([
"color" => "white"
]);

效果很好。

问题:

现在我不想传递任何参数

class CarB extends Car 
{
public function handle()
{
echo 'CarB';
}
}

$car= new CarB();
// Here I dont wnat to pass any args, I just want to call the method.
$car->handle();

这是行不通的。我遇到错误:必须兼容

我想要什么?

我希望“句柄”函数仅在传递数组数据或未传递数组数据时起作用

最佳答案

如@jacki360 所述,最接近的是使用 func_get_args() .

abstract class Car
{
abstract public function handle();
}

class CarA extends Car
{
public function handle()
{
$args = func_get_args();
if ( count($args) && is_array($args[0]) ) {
$data = $args[0];
echo $data['color'];
}
}
}
class CarB extends Car
{
public function handle()
{
echo self::Class . "\n";
}
}

$car= new CarA();
// Here I can pass args as an array
$car->handle([
"color" => "white"
]);
$car2 = new CarB;
$car2->handle();

关于php - 在抽象函数中将参数设为可选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56120744/

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