有人能告诉我$this关键字之间的区别吗


Can anyone tell me the difference between $this keyword

$this关键字有什么用?两种情况的输出都是相同的,那么为什么我们需要使用$this关键字呢。以及$this关键字的使用位置。

<?php
 class Test
 {
  private $var;
  public function func1()
   {
    $this->var = 1;     
    return $this->var;
   }
  public function func2()
  {
    $var = 2;       
    return $var;
  }
}
$obj = new Test();
echo $obj->func1();
echo $obj ->func2();
?>

情况12和12的输出。

$这指的是当前的目标

$this->var=1;

$object->var值已更改为1。


$var=2;

$object->var没有更改。

 class Test
 {
  public $var = 0;
  public function func1()
   {
    $this->var = 1;     
    return $this->var;
   }
  public function func2()
  {
    $var = 2;       
    return $var;
  }
}
$obj = new Test();
echo "By default $obj->var is : ".$obj->var;
$obj->func1();
echo "<hr />By func1 $obj->var change to : ".$obj->var;
$obj->func2();
echo "<hr />By func2 $obj->var still is : ".$obj->var;
exit;

输出

By default $obj->var is : 0
By func1 $obj->var change to : 1
By func2 $obj->var still is : 1

它是对当前对象的引用,在面向对象的代码中最常用。

它实际上是引用当前类的实例。

一般来说,我们可以说$this用于引用当前对象,您可以在这里得到很好的解释$this关键字的含义是什么?或如何解释';这';关键字的最佳和简单的方式?