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)
添加到第二个函数中。