2016-11-16 47 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给我的回调,甚至没有考虑它。我会尽快接受你的回答。干杯! –