php - 在 PHP 中返回一个方法
问题描述
我有一堂课叫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){}
}
我想将调用的私有方法返回给它的调用者,这样我就可以在方法中fromM
使用我的另一个自定义参数来调用它。fromKM
fromM
convert
当我运行上面的代码时,我得到了错误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){}
}
推荐阅读
- angular - 如何在 TypeScript 中添加 *ngIf 模板字符串
- azure-devops - Azure Pipeline 构建特定的拉取请求
- excel - Excel 工作表,其中列的数字存储为文本和整数 - 熊猫问题
- javascript - 如何在Angular中选择对象列表的不同属性值
- angular - 多个组件上的同一商店
- c++ - KDevelop 配置项目失败
- c# - 主动机器人触发瀑布
- swift - 在状态栏打开时捕获事件(iOS 9)
- node.js - 查找引用对象 id 等于 user._id 的数据
- python - 将多列值金额循环到Python中文件的借方和贷方金额列