似乎无法访问对象的属性
问题描述:
我有一个简单的函数:似乎无法访问对象的属性
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;
}
我在做什么错?谢谢:)
答
这是因为您使用的名称是$this
,这是一个伪变量,当在对象上下文中调用方法时变为可用,但您不在对象上下文中调用它时,从函数上下文中调用它。
更改参数的名称和它的作品:
class MyClass {
public $course_id = 0;
}
function myFunction($temp) {
var_dump($temp->course_id);
}
$test = new MyClass();
myFunction($test);
+1
噢!非常感谢。我使用了$这是因为这就是WP给我的回调,甚至没有考虑它。我会尽快接受你的回答。干杯! –
如果您发布的全部课程,我们可能会看到一些错误存在。 –
从什么情况下调用'var_dump($ this-> course_id);'? – bcmcfc
@bcmcfc从我列在顶部的相同函数中。这是一个修改WordPress管理员表的插件 –