类中的$this
通常我们调用类的成员方法时是通过“对象名->方法名()”来调用。但是在定义类的时候,如果想在方法中调用类中的其他方法或属性时,由于类未被实例化,所以此时还不清楚具体的对象名是什么,不能通过使用对象名的方式来进行调用。为了解决上述问题,我们就要用到$this来完成上述操作。
接下来通过代码演示$this的具体使用,具体代码如下所示。
1 class User
2 {
3 public $name = '张三'; // 姓名
4 protected $phone = '400-123456'; // 电话
5 private $money = '5000'; // 存款
6 public function getAll()
7 {
8 var_dump($this);
9 echo $this->name, ' ';
10 echo $this->phone, ' ';
11 echo $this->money, ' ';
12 }
13 }
14 $user = new User();
15 $user->getAll(); // 输出结果:张三 400-123456 5000
在上述代码中,第6~12行定义了getAll()方法,在该方法中使用了特殊变量“$this”,它代表当前对象,用于完成对象内部成员之间的访问。
第8行代码使用var_dump()打印了$this的结果,其结果如下。
object(User)#1(3) {
['name']=>char('张三')
['phone']=>char('400-123456')
['money']=>char('5000')
}
通过打印$this的输出结果可以看出,$this代表的是$user对象。需要注意的是,$this只能在类定义的方法中使用,不能在类外部使用。