Ошибка при вызове функции самостоятельно, VCS говорят = "неопределенная функция" - PullRequest
0 голосов
/ 16 января 2020

Я получил эту функцию из вопроса здесь . когда я пробую отдельный файл, он работает нормально. но когда я переписываю его в классе, который содержит больше функций, я могу, скорее, вызвать его в другом файле, searchRe c, содержащийся в этой функции (вызывая саму функцию), становится красным или помечается как ошибка в коде Visual Studio. тогда как раньше, над этой функцией, я также написал ту же функцию, в которой есть сам вызов функции, и он работает нормально.

public function searchRec($haystack, $needle, $pathId=Array(), $pathIndex=Array())
{
    foreach($haystack as $index => $item) {

        $pathId[] = $item['Id'];

        $pathIndex[] = $index;

        if($item['Title'] == $needle) {

            $returnObject = new stdClass();

            $returnObject->match = $item;   

            $returnObject->pathId = $pathId; 
            item directly
                $returnObject->pathIndex = $pathIndex; 
            return $returnObject;
        }

        if(isset($item['Children']) && count($item['Children']>0)) {
            (recursively) 

                $result = searchRec($item['Children'], $needle, $pathId, $pathIndex); //searchRec error, VCS say: undifined function

            if($result) {

                return $result;
            }
        }
    }
    return false;
}

1 Ответ

1 голос
/ 16 января 2020

Поскольку это метод класса, вам нужно вызывать его с объектно-ориентированным синтаксисом.

$result = $this->searchRec($item['Children'], $needle, $pathId, $pathIndex);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...