Чтобы упростить понимание того, на что $this
ссылается в представлении, поскольку представление «загружается» методом контроллера, представление все еще выполняется в той же области, что и этот метод, то есть $this
может иметьразличный контекст в зависимости от того, какой класс загрузил его.
Например:
class Controller1 extends CI_Controller {}
В любом файле представления, загруженном в этом примере контроллера, $this
относится конкретно к классу Controller1
, которыйможет также получить доступ к CI_Controller
открытым и защищенным свойствам / методам (например, к классам Loader или Input, которые назначены для свойств load
и input
CI_Controller), поскольку он расширяет этого класса.
Контроллеры - это просто старые классы PHP.Если бы я должен был сделать это:
class Controller1 extends CI_Controller {
$this->foobar = 'Hello';
}
class Controller2 extends CI_Controller {
$this->foobar = 'World';
}
... если мы загрузим тот же файл представления в любом методе любого из этих контроллеров, использование $this->foobar
в этом файле представления будетвернуть другое значение.