我想做这样的事情,但......工作!
function _mathOperation($a, $b, $operation, $conversion)
{
return $operation($conversion($a), $conversion($b));
}
echo _mathOperation(4, 5, function($a, $b) { return $a+$b; }, intval);
echo _mathOperation(4.6, 5, function($a, $b) { return $a+$b; }, floatval);
我有将intval
和floatval
作为函数参数传递的问题。
你是如何处理的?
答案 0 :(得分:1)
你错过了函数名称周围的引号:
function _mathOperation($a, $b, $operation, $conversion)
{
return $operation($conversion($a), $conversion($b));
}
echo _mathOperation(4, 5, function($a, $b) { return $a+$b; }, "intval");
// ^^ ^^
echo _mathOperation(4.6, 5, function($a, $b) { return $a+$b; }, "floatval");
// ^^ ^^
答案 1 :(得分:0)
您应该将转换参数作为函数名称传递,而不是尝试传递函数。
e.g。
<?php
echo _mathOperation(4, 5, function($a, $b) { return $a+$b; }, 'intval');