$ 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;
}
}
答案 0 :(得分:9)
php
无法以C++
,Java
和C#
的方式运作。
在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
只是一个可以在创建它的本地范围内访问的变量。