0

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

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

输出为

但是,当我将其更改为:

$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 一样使用它...

4

1 回答 1

1

$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
    }

}
于 2013-03-22T15:34:32.693 回答