为什么$this->data['foo']的var_dump不起作用,而$data['foo']却不起作用?



在我的控制器中我有这个:

$this->data['post'] = $this->mdl_posts->get_post_by_slug($slug);
var_dump($this->data['post']);
die();

输出null

但是,当我把它改成:

$data['post'] = $this->mdl_posts->get_post_by_slug($slug);
var_dump($data['post']);
die();

我得到了我想要的整个数组的var_dump。

我的问题是为什么var_dump或print_r不能与$this->data['post']一起工作,而只能与$data['post']一起工作。

我使用$this->data而不是$data,因为我从构造函数发送一些变量到方法等,所以我需要使用它像$this->data…

$this->data将意味着data是您在其中操作的类的成员。data必须是您正在操作的方法的局部变量,但不是类的成员。

class MyClass {
    private $member = "123";
    public function __construct() {
        $this->methodCall("abc");
    }
    public function methodCall($nonMember) {
        echo $nonMember;       // valid
        echo $this->member;    // valid
        echo $this->nonMember; // not valid
    }
}

最新更新