В моем контроллере у меня есть это:

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

0
Derfder 22 Мар 2013 в 19:32

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
    }

}
1
Daedalus 22 Мар 2013 в 19:52