嗨,伙计们,我目前很困惑 为什么我在编译代码时收到有关缺少参数的错误,它给了我此错误 警告:缺少 print_LCS() 的参数 5,这是我的代码:
这是函数
function print_LCS($b,$x,$i,$j,$k){
$fLCS=array();
if ($i==0||$j==0)
{
return 0;
}
if ($b[$i][$j]=='c')
{
print_LCS($b,$x,$i-1,$j-1);
$fLCS[$k] = $x[$i-1]." ";
$k++;
}
elseif ($b[$i][$j]=='u')
{
print_LCS($b,$x,$i-1,$j);
}
else
{
print_LCS($b,$x,$i,$j-1);
}
return array($fLCS);
}
这是函数调用:
list($final)=print_LCS($var2,$first,$var3,$var4,$var5);
希望你们能快速回复。非常感谢。
问题是对同一函数的嵌套调用(大概是为了递归),因为它只有 4 个值传递给它。
function print_LCS($b,$x,$i,$j,$k){
$fLCS=array();
if ($i==0||$j==0) {
return 0;
}
if ($b[$i][$j]=='c'){
print_LCS($b,$x,$i-1,$j-1, $XXXXX );/* you need another parameter here or a default value */
$fLCS[$k] = $x[$i-1]." ";
$k++;
} elseif ($b[$i][$j]=='u') {
print_LCS($b,$x,$i-1,$j,$XXXXX);/* you need another parameter here or a default value */
} else {
print_LCS($b,$x,$i,$j-1,$XXXXX);/* you need another parameter here or a default value */
}
return array($fLCS);
}
不知道功能在做什么,很难说这是否有效或导致更多问题,但您可以在初始声明中为第五个参数提供默认值,例如:
function print_LCS($b,$x,$i,$j,$k=false){/* rest of function */}
这样,它将愉快地在失败点继续 - 尽管第 5 个参数带来了什么是未知的。