Intereting Posts
Приложение Yii как сделать скрытое поле для текущей даты даты в режиме создания? Значение карты для цветовой шкалы Перенаправить из корневого каталога сервера в корневой каталог apache Лучший способ получить первый и последний день в прошлом месяце? Неисправность «408 Тайм-аут запроса» на Apache с PHP ожидание соединения (netbeans-xdebug) застревает PHP, как поток потока mp3 снова Система комментариев PHP с ответом 1 уровня. Проблема с отображением запроса Как я могу отправить уведомление Firebase Cloud Messaging без использования Firebase Console? PHP / SESSION: Логин один на пользователя? вернуть несколько значений из функции есть ли способ заполнить другое текстовое поле при onchange? Улучшенный PHP, MySql, HTML и JavaScript IDE Как создать безопасный сценарий загрузки файлов в php? Laravel прикованный / связанный блок выбора не смог загрузить статус ресурса. Внутренняя ошибка сервера.

Когда вы будете использовать это ключевое слово $ в PHP?

Когда вы будете использовать $this ключевое слово $this в PHP? Из того, что я понимаю, $this относится к объекту, созданному без знания имени объекта.

Также ключевое слово $this может использоваться только в методе?

Примером было бы хорошо показать, когда вы можете использовать $this .

Класс может содержать свои собственные константы, переменные (называемые «свойствами») и функции (называемые «методы»).

 <?php class SimpleClass { // property declaration public $var = 'a default value'; // method declaration public function displayVar() { echo $this->var; } } ?> 

Некоторые примеры $ this псевдопеременной:

 <?php class A { function foo() { if (isset($this)) { echo '$this is defined ('; echo get_class($this); echo ")\n"; } else { echo "\$this is not defined.\n"; } } } class B { function bar() { // Note: the next line will issue a warning if E_STRICT is enabled. A::foo(); } } $a = new A(); $a->foo(); // Note: the next line will issue a warning if E_STRICT is enabled. A::foo(); $b = new B(); $b->bar(); // Note: the next line will issue a warning if E_STRICT is enabled. B::bar(); ?> 

Вышеприведенный пример выводит:

  • $ это определено (A)
  • $ это не определено.
  • $ это определено (B)
  • $ это не определено.

Наиболее распространенный вариант использования – в объектно-ориентированном программировании, определяя или работая внутри класса. Например:

 class Horse { var $running = false; function run() { $this->running = true; } } 

Как вы можете видеть, в функции run мы можем использовать переменную $this чтобы ссылаться на экземпляр класса Horse, в котором мы находимся. Поэтому нужно иметь в виду, что если вы создадите 2 класса лошадей, $this переменная внутри каждой будет относиться к этому конкретному экземпляру класса Horse, а не к ним обоим.

Вы бы использовали только $ this, если вы делаете объектно-ориентированное программирование на PHP. Значение, если вы создаете классы. Вот пример:

 class Item { protected $name, $price, $qty, $total; public function __construct($iName, $iPrice, $iQty) { $this->name = $iName; $this->price = $iPrice; $this->qty = $iQty; $this->calculate(); } } 

Он используется в объектно-ориентированном программировании (ООП):

 <?php class Example { public function foo() { //code } public function bar() { $this->foo(); } } 

Псевдопеременная $ this доступна, когда метод вызывается из контекста объекта. $ это ссылка на вызывающий объект (обычно объект, к которому принадлежит этот метод, но, возможно, другой объект, если метод вызван статически из контекста вторичного объекта).

Используется, когда вы хотите работать с локальными переменными.

Вы также можете прочитать об этом здесь .

 function bark() { print "{$this->Name} says Woof!\n"; } 

Однажды я знаю, что в конечном итоге использование this эквивалента на других языках – это реализовать интерфейс «Свободный»; каждый метод класса, который в противном случае возвращал бы void вместо этого возвращает this , так что вызовы метода могут быть легко скованы вместе.

 public function DoThis(){ //Do stuff here... return $this; } public function DoThat(){ //do other stuff here... return $this; } 

Вышеупомянутое можно назвать так:

 myObject->DoThis()->DoThat(); 

Что может быть полезно для некоторых вещей.

$ используется для создания ссылки на текущий экземпляр объекта. Таким образом, вы можете делать такие вещи, как:

 class MyClass { private $name; public function setName($name) { $this->name = $name; } //vs public function setName($pName) { $name = $pName; } } 

Кроме того, еще одно интересное использование заключается в том, что вы можете использовать методы:

 class MyClass2 { private $firstName; private $lastName; public function setFirstName($name) { $this->firstName = $name; return $this; } public function setLastName($name) { $this->lastName = $name; return $this; } public function sayHello() { print "Hello {$this->firstName} {$this->lastName}"; } } //And now you can do: $newInstance = new MyClass2; $newInstance->setFirstName("John")->setLastName("Doe")->sayHello(); 

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

Например, представьте себе следующее:

 class Test { private $_hello = "hello"; public function getHello () { echo $this->_hello; // note that I removed the $ from _hello ! } public function setHello ($hello) { $this->_hello = $hello; } } 

Чтобы получить доступ к методу getHello, я должен создать новый экземпляр класса Test, например:

 $obj = new Test (); // Then, I can access to the getHello method : echo $obj->getHello (); // will output "hello" $obj->setHello("lala"); echo $obj->getHello (); // will output "lala" 

На самом деле, $ this используется внутри класса, когда это невозможно. Это называется областью .

Внутри вашего класса вы используете $ this (для доступа к * $ _ hello *, например), но вне класса, $ this НЕ относится к элементам внутри вашего класса (например, * $ _ hello *), это делает $ obj .

Теперь основное отличие между $ obj и $ заключается в том, что $ obj доступа к вашему классу извне , некоторые ограничения происходят: если вы определяете что-то личное или защищенное в своем классе, например моя переменная * $ _ hello *, $ obj CAN NOT доступ к нему (это частный!), но $ это может , из-за этого оставить этот класс внутри класса.

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

думаю, что у нас есть переменное значение $ var и в THAT экземпляре этого объекта должно быть установлено значение 5

$ This-> вар = 5;

Использование $ this относится к методам ссылки или переменным экземпляра, принадлежащим текущему объекту

$ this-> name = $ name или $ this-> callSomeMethod ()

который будет использовать переменную или метод, реализованные в текущем объекте подклассом или нет.

Если вы хотите специально вызвать реализацию родительского класса, вы бы сделали что-то вроде

Родитель :: callSomeMethod ()

 <?php class identity { public $name; public $age; public function display() { return $this->name . 'is'. $this->age . 'years old'; } } ?>