За последние 24 часа нас посетили 17695 программистов и 1715 роботов. Сейчас ищут 1746 программистов ...

Что значит $this-> ?

Тема в разделе "PHP для новичков", создана пользователем Freakmeister, 18 дек 2010.

  1. Freakmeister

    Freakmeister Активный пользователь

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Часто встречаю такой синтаксис переменной в движках, например:
    $this->profile_fields
    Но не понимаю что этот синтаксис значит, тем более не понимаю его полезности.) Ткните плз нубу как это называется и где про это почитать... я люблю читать.)
     
  2. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    PHP:
    1. <?php
    2. class A{
    3.     private $a = 1;
    4.  
    5.     public function getA(){
    6.         return $this->a;
    7.     }
    8.    
    9.     public function someMethod(){
    10.         return $this->getA();
    11.     }
    12. }
    13.  
    14. $obj = new A();
    15. echo $obj->someMethod();
    $this это псевдо переменная, когда методы вызываются в контексте объекта, ссылка на вызывающий объект
     
  3. Freakmeister

    Freakmeister Активный пользователь

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Ммм... ничего не понял. :D
     
  4. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    PHP:
    1. <?php
    2. class A{
    3.      private $a = 1;
    4.  
    5.      public function getA(){
    6.          return $этот_объект->a;
    7.      }
    8.  }
    а так?))
     
  5. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    Код (Text):
    1.  
    2. class Dog {
    3.   private $age;
    4.   private $name;
    5.  
    6.   public function __construct($name = '', $age = 0){
    7.     $this->age = $age;
    8.     $this->name = $name;
    9.   }
    10.  
    11.   public function getName(){
    12.     return $this->name;
    13.   }
    14.  
    15.   public function getAge(){
    16.     return $this->age;
    17.   }
    18.  
    19. }
    20.  
    21. $sharik = new Dog('Шарик', 3);
    22. $pusya = new Dog('Пуся', 5);
    23.  
    24. $sharic->getName();
    25. $pusya->getName();
    то же самое, но на русском
    Код (Text):
    1.  
    2. класс Собака {
    3.   закрытый $возраст;
    4.   закрытый $имя;
    5.  
    6.   открытый метод __construct($имя = '', $возраст = 0){
    7.     $данный_объект->возраст = $возраст;
    8.     $данный_объект->имя = $имя;
    9.   }
    10.  
    11.   открытый метод getName(){
    12.     возвратить $данный_объект->имя;
    13.   }
    14.  
    15.   открытый метод getAge(){
    16.     возвратить $данный_объект->возраст;
    17.   }
    18.  
    19. }
    20.  
    21. $sharik = новая Собака('Шарик', 3);
    22. $pusya = новая Собака('Пуся', 5);
    23.  
    24. $sharic->getName();
    25. $pusya->getName();
    $sharic->getName() вернёт "Шарик"
    $pusya->getName() вернёт "Пуся"

    для шарика $this - это шарик, для пуси $this - это пуся.
    означает текущий объект, через который можно внутри обратиться к имени и возрасту.
     
    laszlopv нравится это.
  6. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
  7. Freakmeister

    Freakmeister Активный пользователь

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5