2016-11-16 53 views
1

我有一個簡單的函數:似乎無法訪問對象的屬性

function myFunction($this){ 
    var_dump($this); 
} 

它輸出這樣的:

object(MyClass)#810 (20) { 
    ["course_id"]=>int(43) 
    // ...more properties 
} 

但是,如果我嘗試訪問該對象的「COURSE_ID」沒有獲取輸出:

var_dump($this->course_id); 

在類定義,course_id是公開的:

class MyClass extends AnotherClass { 

    public $course_id = 0; 
} 

我在做什麼錯?謝謝:)

+0

如果您發佈的全部課程,我們可能會看到一些錯誤存在。 –

+1

從什麼情況下調用'var_dump($ this-> course_id);'? – bcmcfc

+0

@bcmcfc從我列在頂部的相同函數中。這是一個修改WordPress管理員表的插件 –

回答

5

這是因爲您使用的名稱是$this,這是一個僞變量,當在對象上下文中調用方法時變爲可用,但您不在對象上下文中調用它時,從函數上下文中調用它。

更改參數的名稱和它的作品:

class MyClass { 
    public $course_id = 0; 
} 

function myFunction($temp) { 
    var_dump($temp->course_id); 
} 

$test = new MyClass(); 
myFunction($test); 
+1

噢!非常感謝。我使用了$這是因爲這就是WP給我的回調,甚至沒有考慮它。我會盡快接受你的回答。乾杯! –