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

时间:2013-03-22 15:32:31

标签: php arrays controller

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

$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因为我从构造函数向方法等发送一些变量所以我需要使用它像$ this-> data ...

1 个答案:

答案 0 :(得分: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
    }

}