2015-01-20 3 views
0

나는 이런 식으로하고 싶다. 그러나 ... 일하고있다!표준 함수를 매개 변수로 전달하는 방법은 무엇입니까?

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); 

나는 함수 매개 변수로 intvalfloatval 전달에 문제가 있습니다.

어떻게 처리합니까?

답변

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"); 
//                ^^  ^^ 

http://3v4l.org/AYiKN

0

.

<?php 
echo _mathOperation(4, 5, function($a, $b) { return $a+$b; }, 'intval'); 
관련 문제