关于oop:在php中$this意味着什么?

What does $this mean in PHP?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
PHP: self vs this

你好,您能帮助我理解PHP变量名$this的含义吗?

谢谢你的帮助。


$this是指你所在的班级。

例如

1
2
3
4
5
6
7
8
9
10
Class Car {

    function test() {
        return"Test function called";
    }

    function another_test() {
        echo $this->test(); // This will echo"Test function called";
    }
}

希望这有帮助。


你可能想看看php5中的答案,使用self和$this有什么区别?什么时候合适?

基本上,$this是指当前对象。


$this是一个在对象中使用的受保护变量,$this允许您在内部访问类文件。

例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Class Xela
{
   var age; //Point 1

   public function __construct($age)
   {
      $this->setAge($age); //setAge is called by $this internally so the private method will be run
   }

   private function setAge($age)
   {
      $this->age = $age; //$this->age is the variable set at point 1
   }
}

它基本上是一个变量作用域问题,$this只允许在已启动的对象中使用,并且只引用该对象及其父对象,您可以运行私有方法并将私有变量设置为您不能设置的作用域的外部。

另外,self关键字与类内的静态方法非常相似,static基本上是指不能使用$this作为它的非对象,必须使用self::setAge();,如果该setAge方法声明为static,则不能从该对象/object的瞬间调用它。

一些链接供您开始使用:

  • http://php.net/manual/en/language.variables.scope.php
  • http://php.net/manual/en/language.oop5.static.php
  • 如何以最佳和简单的方式解释"this"关键字?
  • 什么时候用自己超过$这个?