2016-10-19 6 views
0

나는 약간의 문제가 있음을 알고 있습니다. 두 개의 익명 함수가 있는데 하나는 다른 함수를 호출합니다. 기능 $fCompleteDate이 기능 $fFindAndCreateDate치명적인 오류 : 함수 이름은 익명 함수가있는 문자열이어야합니다.

내에서 호출 될 때 그러나 나는의 치명적인 오류 얻을 : 스크립트에서 나중에이라고

Function name must be a string.

기능 $fFindAndCreateDate을.

나는 문자 그대로 문제가 무엇인지 전혀 모른다.

$fCompleteDate = function($sDate) 
{ 
    $sDate = str_replace('/', '-', $sDate); 
    return str_repeat('01-', max(0, 2 - substr_count($sDate, '-'))) . $sDate; 
}; 

$fFindAndCreateDate = function($aStruct) 
{ 
    $aDateStructNames = array('', 'Remark', 'Formatted', 'Extra'); 
    foreach($aDateStructNames as $sDateStructName) 
    { 
    echo $fCompleteDate('2001'); 
    echo 'a : '. $fCompleteDate($aStruct['startDate'.$sDateStructName]); 
    echo 'b : '. $fCompleteDate($aStruct['endDate'.$sDateStructName]); 
    } 
}; 
+1

이 유효 PHP 함수가 아닙니다. JS 함수와 PHP 함수는 모두 다릅니다. –

+0

필자는 왜 PHP가 익명으로이 방법을 호출했는지 알지 못합니다. 아무 것도이 종류의 선언에서는 익명입니다. –

답변

2

익명 함수를 사용하므로 답변을 업데이트했습니다.

당신은 두 번째 기능은 다음과 같습니다 : 첫 번째를 사용하도록 지정해야합니다

$fFindAndCreateDate = function($aStruct) use ($fCompleteDate) { 
.... 
} 
+0

왜'$ fFindAndCreateDate' 함수가 올바르게 호출 되었습니까? –

+0

@KevinKamer 죄송합니다. 익명 기능에 대한 답변을 업데이트했습니다. 두 번째 함수에'use ($ fCompleteDate)'만 추가하면됩니다. –

관련 문제