В общем, поправил код, возможно более опытные программисты найдут другой подход. Объясняю, в чем были мои модификации: Как я заметил функции tt и tt2 не подхватывали внутри себя переменную $this, возможно это связано с тем, что эти функции объявлены внутри другой функции. Проблему решил таким путем, я просто вынес функции tt и tt2, поместив их в сам класс, после чего вызывал их через параметр $this. Был и другой вариант, просто передавать переменную $this в эти функции, оба варианта рабочие. Также обнаружил еще одну проблему, в списках стал показываться только одни результат, эта проблема решилась модификацией кода в трех местах: пришлось добавить параметр $res. Вот весь код после модификации: Функции tt и tt2 необходимо вынести из функции auto_run(), поместив их в сам класс boards: Код мода, с уже вынесенными функциями tt и tt2: Зеленым отмечены модифицированные места в коде.