似乎无法访问对象的属性

Chr*_*her 1 php oop wordpress

我有一个简单的功能:

function myFunction($this){
    var_dump($this);
}
Run Code Online (Sandbox Code Playgroud)

哪个输出:

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

但是,如果我尝试访问对象上的"course_id",则不会输出任何内容:

    var_dump($this->course_id);
Run Code Online (Sandbox Code Playgroud)

在类定义中,course_id是public:

class MyClass extends AnotherClass {

    public $course_id = 0;
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?谢谢 :)

mis*_*tin 5

这是因为你使用的名称$this是一个伪变量,当从一个对象上下文中调用一个方法时它变得可用,但是你没有在一个对象上下文中调用它,你是在一个函数上下文中调用它的.

更改参数名称,它的工作原理:

class MyClass {
    public $course_id = 0;
}

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

$test = new MyClass();
myFunction($test);
Run Code Online (Sandbox Code Playgroud)