0

$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

4 回答 4

10

php在某种程度上不起作用C++Java并且C#起作用。

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

所以第一个代码分配1给实例id属性,第二个代码分配1给一个局部$id变量。

于 2012-12-17T09:57:19.203 回答
5

您的示例没有区别,但是$this->variable_name当您的方法中有同名的内部变量时, using 会很有用:

class test{
 public $id;

 function test($id){
  $id = 1;        // method parameter
  $this->id = 2;  // object member
}
于 2012-12-17T09:57:13.537 回答
0

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

于 2012-12-17T09:57:46.653 回答
0

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

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

于 2012-12-17T09:58:22.540 回答