Подтвердить что ты не робот

Что означает $this на самом деле> Codeigniter

Глупый вопрос, который я знаю,

Из всех учебных пособий они не объясняют, почему они используют $this.

Является ли $this как объект из базового класса в Codeigniter?

Любые объяснения будут приветствоваться!:)

Спасибо

4b9b3361

Ответ 1

На самом деле answer ваш вопрос $this фактически представляет экземпляр Singleton Codeigniter (который фактически является объектом контроллера).

Например, когда вы загружаете библиотеки/модели, вы присоединяете их к этому экземпляру, чтобы ссылаться на них как на свойство этого экземпляра.

Еще один способ получить этот экземпляр в codeigniter - это функция get_instance(), которую вы используете при создании переносимых библиотек.

Ответ 2

$this в PHP - текущий объект. В определении класса вы используете $this для работы с текущим объектом. Возьмите этот класс в качестве примера:

class Hello {
  public $data = 'hello';
  function hi() {
    $this->data = 'hi';
  }
}

Вы можете создать экземпляр этого класса несколько раз, но $data будет изменен только на hi в тех объектах, где вы вызывали функцию:

$one = new Hello;
$two = new Hello;
$two->hi();

echo $one->data, "\n", $two->data;

Ответ 3

$this - это не что-то из CodeIgniter, а из PHP. $this относится к текущему объекту.

Всякий раз, когда вы создаете такой экземпляр:

$something = new SomeClass();

Затем $this относится к экземпляру, созданному из SomeClass, в этом случае $something. Всякий раз, когда вы находитесь в самом классе, вы можете использовать $this для ссылки на этот экземпляр. Итак:

class SomeClass {

  public $stuff = 'Some stuff';

  public function doStuff()
  {
    $this->stuff;
  }

}

Ответ 4

В терминах codeigniter:
Вы заметите, что каждый контроллер в codeigniter расширяет базовый класс контроллера. Использование $this в контроллере дает вам доступ ко всему, что определено в вашем контроллере, а также к тому, что унаследовано от базового контроллера.

Большая часть использования, которую вы выберете из $this, включает вызовы методов, которые базовый класс загрузил для вас - $this->load, $this->uri и т.д.

Если я правильно помню, PHP-код в представлении запускается в контексте контроллера, поэтому у вас также будет доступ к объекту контроллера с $this.

Ответ 5

Я просто прочитал отличный пост о $this и classes в целом: http://query7.com/using-this-in-php

В PHP ключевое слово "$ this" используется как самостоятельная ссылка класса и вы можете использовать его для вызова и использования этих свойств и методов в качестве показанном в примере ниже.

Ответ 6

Это способ ссылаться на экземпляр класса изнутри самого себя, так же как и на многие другие объектно-ориентированные языки. Из документов PHP: псевдопеременная $this доступна, когда метод вызывается из контекста объекта.... $это в основном используется для ссылки на свойства класса