PHP中的variables$是什么意思?

我总是看到PHP中的variables$this ,我不知道它是用来做什么的。 我从来没有亲自使用它,search引擎忽略$ ,我最终search单词“这个”。

有人能告诉我如何variables$这在PHP中工作?

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

  • 参考: http : //www.php.net/manual/en/language.oop5.basic.php
  • 入门: http : //www.phpro.org/tutorials/Object-Oriented-Programming-with-PHP.html

例:

 <?php class Person { public $name; function __construct( $name ) { $this->name = $name; } }; $jack = new Person('Jack'); echo $jack->name; 

这将“Jack”string存储为创build的对象的属性。

在php中学习$thisvariables的最好方法是问PHP是什么。 不要问我们,问编译器:

 print gettype($this); //object print get_object_vars($this); //Array print is_array($this); //false print is_object($this); //true print_r($this); //dump of the objects inside it print count($this); //true print get_class($this); //YourProject\YourFile\YourClass print isset($this); //true print get_parent_class($this); //YourBundle\YourStuff\YourParentClass print gettype($this->container); //object 

我知道它的老问题,无论如何,另一个确切的解释$ this$这主要是用来引用一个类的属性。

例:

 Class A { $myname; //this is a member variable of this class function callme(){ $myname='function variable'; $this->myname='Member variable'; echo $myname; //prints function variable echo $this->myname; //prints member variable } } 

输出:

 function variable member variable 

这是从本身内部引用一个类的实例的方式,就像其他许多面向对象的语言一样。

从PHP文档 :

在从对象上下文中调用方法时,伪variables$ this是可用的。 $这是对调用对象的引用(通常是该方法所属的对象,但是如果该方法是从次级对象的上下文静态调用的,可能是另一个对象)。

让我们看看会发生什么,如果我们不使用$ this并尝试使用下面的代码片段使用相同名称的实例variables和构造函数参数

 <?php class Student { public $name; function __construct( $name ) { $name = $name; } }; $tom = new Student('Tom'); echo $tom->name; ?> 

它只是回声

 <?php class Student { public $name; function __construct( $name ) { $this->name = $name; // Using 'this' to access the student's name } }; $tom = new Student('Tom'); echo $tom->name; ?> 

这个回声“汤姆”

当你创build一个类时(在许多情况下)实例variables和方法(又名。函数)。 $访问这些实例variables,以便你的函数可以接受这些variables,并做他们需要做的任何事情。

另一个版本的meder的例子:

 class Person { protected $name; //can't be accessed from outside the class public function __construct($name) { $this->name = $name; } public function getName() { return $this->name; } } // this line creates an instance of the class Person setting "Jack" as $name. // __construct() gets executed when you declare it within the class. $jack = new Person("Jack"); echo $jack->getName(); Output: Jack 

$这是一个特殊的variables,它指的是同一个对象即。 本身。

它实际上是指当前类的实例

这里是一个将清除上述说明的例子

 <?php class Books { /* Member variables */ var $price; var $title; /* Member functions */ function setPrice($par){ $this->price = $par; } function getPrice(){ echo $this->price ."<br/>"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ." <br/>"; } } ?> 

$this是对调用对象的引用 (通常是该方法所属的对象,但是如果该方法是从次级对象的上下文静态调用的,可能是另一个对象)。

正如Meder所说,它指的是当前阶级的实例。

查看PHP文档 。 这是在第一个例子下解释的。