Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 致命错误:函数名必须是具有匿名函数的字符串_Php_Fatal Error_Anonymous Function - Fatal编程技术网

Php 致命错误:函数名必须是具有匿名函数的字符串

Php 致命错误:函数名必须是具有匿名函数的字符串,php,fatal-error,anonymous-function,Php,Fatal Error,Anonymous Function,我发现自己有点问题。 我有两个匿名函数,一个调用另一个。 但是当在函数$ffindadCreateDate中调用函数$fcompledate时 我得到的致命错误是: 函数名必须是字符串 稍后将在脚本中调用函数$ffindadCreateDate 我真的不知道问题出在哪里 $fCompleteDate = function($sDate) { $sDate = str_replace('/', '-', $sDate); return str_repeat('01-', max(0, 2

我发现自己有点问题。 我有两个匿名函数,一个调用另一个。 但是当在函数
$ffindadCreateDate
中调用函数
$fcompledate

我得到的致命错误是:

函数名必须是字符串

稍后将在脚本中调用函数
$ffindadCreateDate

我真的不知道问题出在哪里

$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) {
 ....
}

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

您需要指定第二个函数使用第一个函数,如下所示:

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

这不是有效的PHP函数。JS函数和PHP函数都是不同的。我不知道为什么PHP以匿名的方式调用它,而在这种声明中没有任何东西是匿名的。这是无效的PHP函数。JS函数和PHP函数都是不同的。我不知道为什么PHP以这种方式调用匿名函数,而在这种声明中没有匿名函数。那么为什么函数
$ffindadCreateDate
调用正确?@KevinKamer很抱歉,我更新了匿名函数的答案。您只需将
use($fcomplettedate)
添加到第二个函数。为什么该函数
$ffindadCreateDate
调用正确?@KevinKamer抱歉,我更新了匿名函数的答案。您只需将
use($fcompledate)
添加到第二个函数中。