Неустранимая ошибка: использование $this, когда не в контексте объекта

Вот часть, если есть ошибка.

Неустранимая ошибка: использование $this, когда не в контексте объекта в /pb_events.php в строке 6

строка 6: $jpp = $this->vars->data["jpp"];

function DoEvents($this) {

    global $_CONF, $_PAGE, $_TSM , $base;

    $jpp = $this->vars->data["jpp"];

    $cache["departments"] = $this->db->QFetchRowArray("SELECT * FROM {$this->tables[job_departments]}");
    $cache["locations"] = $this->db->QFetchRowArray("SELECT * FROM {$this->tables[job_location]}");
    $cache["names"] = $this->db->QFetchRowArray("SELECT * FROM {$this->tables[job_names]}");
    $cache["categories"] = $this->db->QFetchRowArray("SELECT * FROM {$this->tables[job_categories]}");

Большое спасибо! оценить!

4 ответа

Решение

$ это имеет смысл только в методах, а не в функциях

хорошо

class Foo {
     function bar() {
          $this->...

это не

function some() {
    $this->

// edit: не заметил, что он передает "$this" в качестве параметра

совет: просто замените "$this" на "$somethingElse"

Ты не пройдешь $this к процессуальной функции. $this является зарезервированной переменной

Согласно моим комментариям. Вы хотите использовать $this как передаваемая переменная и php не разрешает это вне тела методов класса.

function DoEvents($obj) {

    global $_CONF, $_PAGE, $_TSM , $base;

    $jpp = $obj->vars->data["jpp"];

    $cache["departments"] = $obj->db->QFetchRowArray("SELECT * FROM {$obj->tables[job_departments]}");
    $cache["locations"] = $obj->db->QFetchRowArray("SELECT * FROM {$obj->tables[job_location]}");
    $cache["names"] = $obj->db->QFetchRowArray("SELECT * FROM {$obj->tables[job_names]}");
    $cache["categories"] = $obj->db->QFetchRowArray("SELECT * FROM {$obj->tables[job_categories]}");

Вы должны сделать объект первым.

   $object=new Myobject;
   DoEvents($object);
Другие вопросы по тегам