似乎不能访问对象的属性


Can't seem to access an object's properties

我有一个简单的函数:

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是public的:

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);