У меня есть класс с именем 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