我正在尝试在php中实现https://stackoverflow.com/a/2718114/1507339
中描述的C括号平衡器如下所示
function match ($string, $index)
{
if (isset($string[$index]) == false){ return ""; }
if ($string[$index] == "}") { return "}"; }
if ($string[$index] == "{")
{
$closer = match($string, ++$index);
if ($closer == "}"){
return match($closer, ++$index);
}
return $index - 1;
}
return match($string, ++$index);
}
并且它以
运行$string = "{hey}}";
echo match($string, 0);
其中没有关闭的第一个开口支架的位置被打印到屏幕上。这不会发生,我不确定为什么,任何帮助?