Fatal error: Function name must be a string with Anonymous function

Fatal error: Function name must be a string with Anonymous function

我发现自己遇到了一些问题。 我有两个匿名函数,一个调用另一个。 但是当函数$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]);
  }
};

我看到你使用匿名函数所以我更新了我的答案。

您需要像这样指定第二个函数使用第一个函数:

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