0

私のコントローラーにはこれがあります:

$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']です。

コンストラクターからメソッドなどにいくつかの変数を送信しているため、$dataの代わりに$this-> dataを使用しているので、$ this->data...のように使用する必要があります。

4

1 に答える 1

1

$this->datadataそれはあなたが操作しているクラスのメンバーである ことを意味します。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 に答える