PHP preg_replace_callback 有没有办法打破搜索?

PHP preg_replace_callback is there a way to break the search?

有没有办法在 preg_replace_callback 达到某个索引时中断搜索?

例如:

            $content = preg_replace_callback('/'.preg_quote($_POST['query'],'#').'/i', function($matches) use($replacements,&$index) {
                if ( $index > count($replacements) ) {
                    // I tried break; but doesn't work
                }

                if ( $replacements[$index] != '' ) {
                    $matches[0] = $replacements[$index];
                }
                $index++;
                return $matches[0];
            }, $content);

您可以只使用 elseif 忽略第二个 if

       $content = preg_replace_callback('/'.preg_quote($_POST['query'],'#').'/i', function($matches) use($replacements,&$index) {
            if ( $index > count($replacements) ) {
                // I tried break; but doesn't work
            } elseif ( $replacements[$index] != '' ) {
                $matches[0] = $replacements[$index];
            }
            $index++;
            return $matches[0];
        }, $content);

编辑

preg_replace_callback ( mixed pattern, callback callback, mixed subject [, int limit [, int &count]] )

限制 每个主题字符串中每个模式的最大可能替换。默认为 -1(无限制)。

计数 如果指定,此变量将填充完成的替换次数。