作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有这些类(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/
由“CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", ES_MULTILINE.."创建的文本框需要\r\n 换行。我将我的 stdoutput 重定向到那个文
我是一名优秀的程序员,十分优秀!