PHP中的递归函数返回致命错误

时间:2016-07-12 19:24:25

标签: php recursion

我正在尝试在PHP中创建函数,用于在字符串中查找@Sometihng等用户,然后将链接到其字符串中的链接,但是当我使用它时,它返回致命错误:无法重新声明userTags() 即可。你知道问题在哪里或我做错了什么吗?这是我的代码。谢谢你的帮助。

$comment = "Hey @Name how are you?? And how is @AnotherName. Also have you seen @SomeName ??";

function userTags($startFrom) {

    $pos = strpos($comment, '@', $startFrom);     

    if ($pos !== false) {  

        $pos1 = strpos($comment, ' ', $pos);

        if ($pos1 !== false) {

            $insert_string = '<a href="profile.php?owner=somewhere">';
            $insert_string1 = "</a>";

            $comment = substr_replace($comment, $insert_string1, $pos1, 0);
            $comment = substr_replace($comment, $insert_string, $pos, 0);  

            userTags($pos1); 
        }
    }
}

2 个答案:

答案 0 :(得分:0)

函数位于while循环中,因此它被多次声明。

答案 1 :(得分:0)

请尝试使用正则表达式。 :) '/(?<!\w)@\S+/'将提取以@character开头的所有单词。

$comment = "Hey @Name how are you?? And how is @AnotherName. Also have you seen @SomeName ??";

preg_match_all('/(?<!\w)@\S+/', $comment, $matches);
print_r($matches[0]);