В моем контроллере у меня есть это:
$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 ...
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
}
}
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.