8

ここにエラーがある場合の部分があります。

致命的なエラー: 6 行目の /pb_events.php のオブジェクト コンテキストではないときに $this を使用する

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

4 に答える 4

15

$this は関数ではなくメソッドでのみ意味があります

これで結構です

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

これではありません

function some() {
    $this->

// 編集: 彼が "$this" をパラメーターとして渡していることに気づきませんでした

アドバイス: 「$this」を「$somethingElse」に置き換えるだけです

于 2009-10-29T14:00:00.577 に答える
7

$this手続き型関数に渡すことはできません。$this予約変数です。

于 2009-10-29T14:01:52.180 に答える
5

私のコメントによると。渡された変数として使用したいのですが$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]}");
于 2009-10-29T14:31:04.143 に答える
0

最初にオブジェクトを作成する必要があります。

   $object=new Myobject;
   DoEvents($object);
于 2009-10-29T14:21:37.147 に答える