Значение $ this изменяется в методе класса в xDebug - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть класс с именем recruitedbaseList, который содержит список объектов recruitedbase. Он заполняется функцией generateBases, которая вызывается рекурсивно, каждый раз передавая экземпляр recruitedbase.

Моя проблема заключается в том, что строка

$partialBase = new recruitedbase(); 

изменяет значение $ this, ссылаясь на Класс recruitedbaseList, к которому относится функция, к экземпляру recruitedbase.

Это похоже на то, что $ this переназначается в конструкторе recruitedbase и остается таким.

Я вижу такое поведение, когда отлаживаю с помощью xDebug в vsCode. Затем код вылетает в строке

if (isset($this->recruitmentbases[$locTotal])) 

Поскольку $ теперь указывает на экземпляр recruitedbase, который не имеет свойства recruitmentbases.

Если я запускаю код без отладки это не вызывает sh, что заставляет меня поверить, что это проблема xDebug, а не мой код ... но мне нужно иметь возможность отлаживать код, чтобы получить правильный результат.

Кто-нибудь есть и идеи, что может происходить здесь, если это проблема конфигурации, как я могу это исправить?

private function generateBases(&$partialBase = null) {
        if (is_null($partialBase)) {
            $partialBase = new recruitedbase();
        }
        $locTotal = $partialBase->getTotalBasic();  //get the total hours so far
        if (isset($this->recruitmentbases[$locTotal])) { //we alreay have an array with this total hours
...