When would you use the $this keyword in PHP?

前端 未结 12 1728
长发绾君心
长发绾君心 2020-12-15 11:03

When would you use the $this keyword in PHP? From what I understand $this refers to the object created without knowing the objects name.

Al

相关标签:
12条回答
  • 2020-12-15 11:23

    Whenever you want to use a variable that is outside of the function but inside the same class, you use $this. It is a core php concept.

    0 讨论(0)
  • 2020-12-15 11:26

    $this is used when you have created a new instance of an object.

    For example, imagine 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;
        }
    }
    

    In order to access to the method getHello, I have to create a new instance of the class Test, like this :

    $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"    
    

    In fact, $this is used inside the class, when instancied. It is refered as a scope.

    Inside your class you use $this (for accessing *$_hello* for example) but outside the class, $this does NOT refer to the elements inside your class (like *$_hello*), it's $obj that does.

    Now, the main difference between $obj and $this is since $obj access your class from the outside, some restrictions happens : if you define something private or protected in your class, like my variable *$_hello*, $obj CAN'T access it (it's private!) but $this can, becase $this leave inside the class.

    0 讨论(0)
  • 2020-12-15 11:26

    no i think ur idea is wrong.. $this is used when refers to a object of the same class.. like this

    think we have a variable value $var and in THAT instance of that object should be set to 5

    $this->var=5;

    0 讨论(0)
  • 2020-12-15 11:28

    It's used in Object-oriented Programming (OOP):

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

    The pseudo-variable $this is available when a method is called from within an object context. $this is a reference to the calling object (usually the object to which the method belongs, but possibly another object, if the method is called statically from the context of a secondary object).

    0 讨论(0)
  • 2020-12-15 11:31

    The most common use case is within Object Oriented Programming, while defining or working within a class. For example:

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

    As you can see, within the run function, we can use the $this variable to refer to the instance of the Horse class that we are "in". So the other thing to keep in mind is that if you create 2 Horse classes, the $this variable inside of each one will refer to that specific instance of the Horse class, not to them both.

    0 讨论(0)
  • 2020-12-15 11:31

    You would only use $this if you are doing Object Oriented programming in PHP. Meaning if you are creating classes. Here is an example:

    class Item {
      protected $name, $price, $qty, $total;
    
      public function __construct($iName, $iPrice, $iQty) {
        $this->name = $iName;
        $this->price = $iPrice;
        $this->qty = $iQty;
        $this->calculate();
      }
    
    }
    
    0 讨论(0)
提交回复
热议问题