我想做这样的事情,但是...加工!
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
作为函数参数时遇到问题。
你是怎么处理的?
您缺少函数名称周围的引号:
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");
// ^^ ^^
http://3v4l.org/AYiKN
您应该将转换参数作为函数名称传递,而不是尝试传递函数。
例如
<?php
echo _mathOperation(4, 5, function($a, $b) { return $a+$b; }, 'intval');