gpt4 book ai didi

php - 在 PHP 中返回一个方法

转载 作者:行者123 更新时间:2023-12-04 15:53:43 25 4
gpt4 key购买 nike

我有一个类叫做Converter

class Converter {
public function convert($value, $from, $to){
$this->switchUnitCall($from)($value, $to);
}

private function switchUnitCall($from){
switch($from){
case 'm':
return $this->fromM; break;
case 'km':
return $this->fromKM; break;
}
}

private function fromM($value, $to){}
private function fromKM($value, $to){}
}

我想将名为 fromMfromKM 的私有(private)方法返回给它的调用者,这样我就可以用我的另一个自定义参数调用 fromMconvert 方法中。

当我运行上面的代码时,出现错误 Undefined property: Converter::$fromM

我的问题是,是否可以在 PHP 中返回一个方法?它是如何完成的?谢谢。

最佳答案

你不能返回方法,但你可以使用方法名来动态调用它:

class Converter {
public function convert($value, $from, $to){
$method=$this->switchUnitCall($from);
$this->$method($value, $to);
}

private function switchUnitCall($from){
switch($from){
case 'm':
return "fromM"; break;
case 'km':
return "fromKM"; break;
}
}

private function fromM($value, $to){}
private function fromKM($value, $to){}
}

关于php - 在 PHP 中返回一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60418985/

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