$ this-> id和$ id之间有什么区别?

时间:2012-12-17 09:55:14

标签: php this

$ this-> id和$ id。

之间有什么区别
class Test{
 public $id;

 function Test(){
  $this->id = 1;
 }
}

===

class Test{
 public $id;

 function test(){
  $id = 1;
 }
}

如何从其他类中获取变量?

class TestA{
 public $test;

 function TestA(){
  $this->test = new Test();
  echo $this->test->id;
 }
}

4 个答案:

答案 0 :(得分:9)

php无法以C++JavaC#的方式运作。

在php中,您应始终使用$this引用和->运算符来访问实例变量。

因此,第一个代码会将1分配给实例id属性,而第二个代码会将1分配给本地$id变量。

答案 1 :(得分:5)

您的示例没有任何区别,但如果您的方法中具有相同名称的内部变量,则使用$this->variable_name会很有用:

class test{
 public $id;

 function test($id){
  $id = 1;        // method parameter
  $this->id = 2;  // object member
}

答案 2 :(得分:0)

在您的样本中,确实没有区别。您也可以通过使用$this对其进行限定来访问成员变量,所有成员变量都属于$this。正如MarinJuraszek所说,考虑范围很重要。

答案 3 :(得分:0)

$this->id指的是可以在类方法中访问的类属性,也可以通过它的对象来访问。

$id只是一个可以在创建它的本地范围内访问的变量。