CodeIgniter 3, передайте $data для просмотра: $this-›data[] VS $data[]

Я прочитал этот вопрос но это не может мне сильно помочь...

Используя библиотеку Ion_auth, я заметил, что данные в представление передаются $this->data[], а не просто $data.

Почему? В чем разница или преимущество для этого?


person Fra Ore    schedule 04.10.2015    source источник
comment
Вы знаете, что такое $this в oop?   -  person    schedule 04.10.2015
comment
Да, я знаю больше или девушка... Но в чем реальная выгода? что переменные $data можно использовать только в этом классе или как?   -  person Fra Ore    schedule 04.10.2015


Ответы (2)


Использование $this->data означает, что вы можете использовать ООП-наследование родительского контроллера. Родительский контроллер, такой как MY_controller, может установить некоторые начальные данные, которые станут доступными во всех контроллерах, которые его расширяют.

Вот пример: http://avenir.ro/codeigniter-tutorials/creating-working-with-my_controller-codeigniter/

person Zbitset    schedule 22.02.2018

$this->data[] Это означает, что вы должны определить член $data в своем классе,

И $this ссылаются на текущий объект, просто на текущий класс

Когда вы определяете

Class Oop
{
    private $data = array();

    function test()
    {
        $this->data['title'] = 'Home';
        echo $this->data['title']; //access like this
    }
}

В codeigniter $data есть массив

В контроллере вы можете $data['title'] = 'Home'; Затем в представлении вы можете получить к нему доступ, например $title;

Пожалуйста, обратитесь к этому oop

person jlocker    schedule 04.10.2015
comment
Хорошо, спасибо, Джолок, но я хочу знать реальные преимущества. Например: В контроллере Auth.php (библиотека ion_auth) в строке 81 есть: $this-›data['message'] = (validation_errors()) ? validation_errors() : $this-›session-›flashdata('message'); и в строке 93: $this-›_render_page('auth/login', $this-›data); Но если я изменю $data['message'] = (validation_errors())? validation_errors() : $this-›session-›flashdata('message'); и $this-›_render_page('auth/login', $data); результат точно такой же. Так зачем использовать $this, когда в этом нет необходимости? - person Fra Ore; 04.10.2015
comment
@FraOre проверьте функцию и библиотеку _render_page(), тогда вы поймете - person jlocker; 04.10.2015